[AI 인공지능 머신러닝 딥러닝] - 이지 딥러닝 - 혁펜하임 | Easy! 딥러닝 - 무료 강의 및 책 소개
이지 딥러닝 - 혁펜하임 | Easy! 딥러닝 - 무료 강의 및 책 소개
한국어로 딥러닝 공부해봤다는 사람중에 안들어 본 사람이 없을것 같은 이지 딥러닝 시리즈 입니다. 이 강의는 유투브로 제공되며 책도 있습니다. 이지 딥러닝 유투브 강의이지 딥러닝 유투브
inner-game.tistory.com
이 영상의 핵심은 “생물학적 신경을 비유로 삼아서, 인공 신경(뉴런)과 인공신경망(MLP)의 구성요소: 입력, 가중치(weight), 바이어스(bias), 활성함수(activation), 레이어 구조를 직관적으로 이해시키는 것”입니다.

강의에서는 실제 신경의 “자극을 받는 부분–판단하는 핵–다음으로 전달하는 축삭”을 단순화해서, 인공 뉴런을 다음 요소로 설명합니다.

- 입력 x1, x2, …: 여러 상황에서 들어오는 자극(예: 하이파이브, 뒤통수 맞기).
- 가중치 w1, w2, …: 각 입력의 중요도. 뒤통수 맞은 입력에는 큰 가중치를, 하이파이브에는 작은 가중치를 주는 식으로 “얼마나 민감해야 하는지”를 표현합니다.
- 바이어스 b: 전체적으로 민감도를 올리거나 내리는 “역치(threshold)” 조절 값입니다. 입력 합 w1x1 + ⋯ + wn xn에 b를 더해, 어느 정도가 되어야 뉴런이 반응할지 기준을 옮깁니다.


이렇게 얻은 선형 결합

를 활성함수 f(z)에 통과시키면 최종 출력 y=f(z)가 됩니다. 영상에서는 단순화를 위해 유닛 스텝 함수(0 이하면 0, 0보다 크면 1)를 사용해 “정색한다/안 한다”와 같은 이진 반응을 예로 들고, 가중치와 바이어스를 바꾸면서 원하는 상황(뒤통수 맞았을 때만 1을 출력)에 맞도록 뉴런을 설계하는 과정을 보여줍니다.
핵심 메시지는 “주어진 입력에 대해 원하는 출력이 나오도록 w w와 b b를 잘 정하는 것이 곧 학습이며, 이 w , b w,b를 일일이 사람이 정하는 대신 AI가 데이터로부터 찾아낸다”는 점입니다.
단일 뉴런을 여러 개 연결하면 인공신경망(Artificial Neural Network)이 됩니다. 영상에서는 아래 구조를 단계적으로 그리며 설명합니다.
- 입력층(Input layer): 원본 특성이 들어오는 부분 (예: 발바닥, 손바닥, 뒤통수 등 각 감각 신호).
- 은닉층(Hidden layers): 입력을 받아 가중치·바이어스·활성함수를 거쳐 중간 표현을 만드는 층들. 여러 개일 수 있으며, 여기서 복잡한 패턴을 학습합니다.
- 출력층(Output layer): 최종 예측을 내보내는 층. 분류 문제면 클래스 점수/확률, 회귀면 실수 값을 출력합니다.
각 층은 “앞 층의 모든 노드와 연결된 완전연결(fully connected) 구조”로, 각 연결마다 독립적인 가중치를 갖습니다. 입력층–은닉층(한 개 이상)–출력층으로 이루어진 완전연결 신경망을 멀티레이어 퍼셉트론(MLP)이라고 부르며, 은닉층이 최소 한 층 이상 있어야 ‘멀티레이어’ 조건을 만족합니다.
또한, 각 층 사이의 가중치 개수는
- “이전 층 노드 수 × 다음 층 노드 수 + 다음 층 바이어스 수” 로 계산할 수 있다는 팁도 함께 소개합니다. 이는 네트워크 파라미터 수를 손으로 세거나, 모델 용량·메모리 요구량을 대략 가늠할 때 유용합니다.
요약하면, 이 강의는 “곱하고 더하고 활성함수 통과시키는 연산을 여러 층으로 반복하는 구조가 인공신경망이며, 학습이란 이 안의 가중치와 바이어스를 데이터에 맞게 자동으로 조정하는 과정”이라는 큰 그림을 비유를 통해 잡게 해 주는 내용입니다.





이 영상의 핵심은 “인공신경망은 결국 ‘입력을 넣으면 출력을 내는 하나의 함수’이고, 학습이란 이 함수의 모양(가중치·바이어스)을 데이터로부터 찾아내는 과정”이라는 관점을 잡아 주는 것입니다.


강의에서는 먼저 초등학교 수준의 함수 f(x)=x+3, f(x)=x^2, f(x,y) 같은 예로 “입력을 넣으면 어떤 규칙에 따라 출력이 나온다”는 함수 개념을 상기시킵니다.
그 다음 인공신경망 전체를 하나의 박스 f f로 보고, 이 박스에 이미지, 숫자, 텍스트 등의 입력 x x를 넣으면 분류 레이블, 회귀값, 답변 텍스트 같은 출력 y가 나오는 함수 f:x↦y 로 해석합니다.
즉, 뉴런, 레이어, 가중치, 바이어스, 활성함수 등은 “이 함수 f를 구성하는 내부 구현 디테일”일 뿐이고, 수학적으로는 그냥 하나의 복잡한 함수에 지나지 않는다는 점을 강조합니다.


감독학습에서는 “입력–정답 출력 쌍”을 많이 보여 주면서 이 함수를 점점 수정해 갑니다.
- 예: 조회수 → 수익. 여러 영상의 “조회수–수익” 데이터를 계속 넣어 주면, 신경망이 이 점들을 잘 잇는 함수 f(조회수)를 찾아 가고, 처음 보는 조회수에 대해서도 그 함수로 예측 수익을 뽑아낼 수 있게 됩니다.
- 예: 이미지 → 클래스. 강아지 사진에는 “강아지”, 고양이 사진에는 “고양이”를 정답으로 주입식으로 반복해서 알려 주면, 입력 이미지 x를 클래스로 매핑하는 함수 f(x)를 학습하게 됩니다.
영상의 표현대로 말하면, AI는 “입력과 출력을 잇는 함수”를 데이터로부터 깨닫는 존재이고, 그 깨달음이 곧 내부 가중치·바이어스 값이 정해지는 것입니다. 이 관점에서 보면, ChatGPT 같은 모델도 “질문 문장 → 답변 문장”을 매핑하는 거대한 함수일 뿐이라는 비유를 듭니다.
마지막으로 “그렇다면 인공신경망이 함수라면, 중학교 때 배운 1차 함수 y=ax+b도 신경망으로 만들 수 있지 않겠느냐?”라는 예를 듭니다.
- 입력 x x가 하나인 뉴런 하나를 두고
- 활성함수는 “리니어(선형) 활성함수” f(z)=z를 사용하면
- 출력은 y=f(ax+b)=ax+b가 됩니다.
즉, 가중치 w=a, 바이어스 b 로 잡은 단일 뉴런 + 선형 활성함수만으로도 1차 함수를 그대로 구현할 수 있고, 더 복잡한 함수는 이런 선형 조합과 비선형 활성함수들을 여러 층으로 쌓아 근사한다는 방향으로 다음 강의(선형 회귀, 그리고 나중의 딥러닝 전체)로 연결합니다.
이 강의의 핵심은 “선형 회귀(linear regression)를 ‘관계 함수를 찾는 문제 + 적절한 로스 정의(MSE/MAE) + 그 로스를 최소로 만드는 파라미터 a,b 찾기’로 보면, 딥러닝 전체 구조를 이해하는 데 거의 그대로 확장된다”는 점입니다.

영상에서는 회귀(回歸)를 “입력과 출력 사이의 연속적인 수치 관계를 알아내는 것”이라고 정의합니다.
- 예: 조회수 → 수익 (수익은 1234.5원처럼 연속적인 실수 값)
- 분류: “강아지/고양이”, “A등급/B등급”처럼 이산적인 레이블을 예측
본질은 둘 다 “입력 → 출력 함수 학습”이지만, 회귀는 연속 값, 분류는 카테고리 값을 예측한다는 점만 다르다고 정리합니다.
예시로 유튜브 조회수–수익 데이터를 가져와,
- 입력 x: 조회수
- 출력 y: 수익
- 모델 f(x)=ax+b: 1차 함수(선형 모델)
로 두고, “데이터에 가장 잘 맞는 a(기울기, weight)와 b(절편, bias)를 찾는 것”이 선형 회귀의 목표라고 설명합니다.
초기에는 a,b를 아무렇게나(랜덤) 잡았다고 가정하고, 이때의 직선이 얼마나 “안 좋은지”를 수치로 평가하기 위해 로스 함수(loss) 가 필요하다고 연결합니다.


데이터 (x i ,y i )와 예측 y ^ i =ax i +b에 대해 오차 e i =y i − y ^ i 를 두고, 로스를 “오차들의 합”으로 만들고 싶지만, 그냥 ∑e i 로 두면 플러스/마이너스가 상쇄되어 문제가 생깁니다. 그래서 두 가지 대표 선택지를 소개합니다.

- MSE (Mean Squared Error):

-- 제곱 때문에 큰 오차에 더 민감. 오차가 두 배면 로스는 네 배.
-- 그래서 아웃라이어에 매우 민감하고, 그 점을 맞추려고 전체 직선을 끌고 가는 경향이 강합니다.
- MAE (Mean Absolute Error):

-- 모든 오차를 선형으로 대우. 두 배 더 멀어지면 로스도 두 배.
-- 아웃라이어에 덜 민감하고, 전체 데이터에 좀 더 균형 잡힌 영향을 줍니다. 강의에서 보여준 그림처럼, 한 점이 멀리 튀어 있는(outlier) 상황에서 MSE는 그 점 때문에 직선을 심하게 끌어당기는 반면, MAE는 그 점을 고려하되 “미친 듯이” 신경 쓰지는 않는다는 차이를 강조합니다.
또한

는 최소값을 만드는 a , b a,b가 같기 때문에, 스케일 상수(예: 1/n)를 곱하느냐는 최적해의 위치를 바꾸지 않는다는 점도 짚어 줍니다.

정리하면, 선형 회귀는 다음 문제를 푸는 것입니다.
- 모델:

- 로스:

(또는 MAE)
- 목표: L(a,b)를 최소화하는 a , b a,b 찾기
이론적으로는 a , b a,b를 여러 값으로 바꿔가며 로스 지형(l = 2차 함수)을 그려 보고, 그중 최소가 되는 지점을 고를 수 있지만, 파라미터가 많아지면(다차원 w w, 딥러닝 수백만 개 가중치) 이 방식은 불가능해집니다.
그래서 다음 강의에서 경사하강법(Gradient Descent)을 소개하면서,
“선형 회귀에서 a,b를 찾는 방식 = 딥러닝에서 거대한 가중치 벡터를 최적화하는 방식”이라는 연결고리를 만들게 됩니다.
이 강의의 핵심은 “선형 회귀에서 시작해, 경사 하강법(Gradient Descent)으로 로스를 줄이는 일반적인 최적화 아이디어를 이해하면, 딥러닝 학습도 같은 원리로 볼 수 있다”는 점입니다.


먼저 선형 회귀에서 로스 L(a,b)를 최소로 만드는 a,b를 찾고 싶은데, 모든 a,b 조합에 대해 로스를 계산해 보는 것은 파라미터 수가 많아지면(딥러닝 수백만–수억 개) 불가능합니다.
그래서 “현재 위치에서 로스를 가장 가파르게 줄이는 방향으로 조금씩 이동하자”는 전략을 씁니다. 로스를 높이는 가장 가파른 방향이 그래디언트(gradient) 이므로, 로스를 줄이려면 그 반대 방향으로 이동하면 됩니다.
수식으로는, 파라미터 벡터 θ=(a,b)에 대해

형태이며, 여기서 α는 한 번에 얼마나 이동할지 정하는 러닝 레이트(learning rate)입니다.


그래디언트 ∇L는 “로스가 가장 빨리 증가하는 방향”을 나타내는 벡터이고, 그 반대 방향 −∇L로 가면 로스가 가장 빨리 감소합니다.
영상에서는 z=x^2 +y^2 같은 예시에서 특정 점에서의 그래디언트를 직접 계산해 벡터로 그려 보며, 이 방향이 실제로 가장 가파른 상승 방향임을 시각적으로 보여 줍니다.
러닝 레이트 α가 너무 크면 최소점 주변을 왔다 갔다 하거나 발산하고, 너무 작으면 수렴이 매우 느려집니다. 그래서 α를 0과 1 사이의 작은 값으로 두고, 필요하면 학습 중에 점차 줄이는 스케줄링도 사용할 수 있다고 설명합니다.
또한, 최소점에 가까워질수록 그래디언트 크기가 작아지기 때문에, 적절한 α를 사용하면 점점 스텝이 줄어들며 자연스럽게 수렴하는 직관도 함께 제시합니다.

영상에서는 “모든 데이터에 대해 로스를 계산해 그래디언트를 구하는 방식”을 배치 경사 하강법(Full-batch GD) 으로 볼 수 있다고 지적합니다.

- 장점: 모든 데이터를 반영한 아주 신중한 방향을 선택.
- 단점: 데이터가 많을수록 한 번의 업데이트 비용이 너무 크고, 여전히 복잡한 로스 지형에서는 로컬 미니마에 빠질 위험이 큼.

로스가 단순한 볼 모양이면 전역 최소에 잘 도달하지만, 딥러닝처럼 로스 랜드스케이프가 구덩이가 많은 경우, 시작 위치에 따라 가까운 로컬 미니멈에 수렴하게 되고, 이 방법만으로는 “전역 최적”을 보장할 수 없다는 점도 짚습니다.
바로 이러한 한계를 완화하기 위해, 다음 강의에서 SGD(확률적 경사 하강법) 와 변형 알고리즘들을 소개하겠다는 예고로 마무리합니다.

이 강의의 핵심은 “웨이트 초기화는 ‘0 근처의 작은 랜덤값’으로 하되, fan_in / fan_out(입·출력 노드 수)에 맞춰 분산을 잘 잡아야 앞으로도, 뒤로도 신호·그라디언트가 폭주하거나 사라지지 않고 안정적으로 전파된다”는 점입니다.

강의에서 소개하는 세 사람(LeCun, Xavier/Glorot, He/Kaiming)의 공통점은 다음과 같습니다.
- 가중치는 평균 0을 중심으로 한 분포에서
- 랜덤하게 뽑되
- 분산을 fan_in, fan_out에 의존하도록 설계한다.
여기서
- fan_in = 해당 레이어의 입력 노드 수
- fan_out = 출력 노드 수입니다.
이렇게 해야 한 층에서 다음 층으로 신호를 보낼 때도, 역전파로 그라디언트를 보낼 때도 값의 분산이 너무 커지거나(폭발) 너무 작아지지(소실) 않도록 막을 수 있습니다.
강의에서 정리하는 주요 초기화는 다음과 같습니다.
- LeCun 초기화 (주로 시그모이드·tanh 근방, 옛날 MLP에 적합)
-- fan_in만 고려: Var(W)=1/fan_in 정도로 설정
-- 입력 쪽에서 오는 신호의 분산이 층을 지나도 유지되도록 설계합니다.

u는 유니폼 n은 노말(정규화)
- Xavier/Glorot 초기화 (시그모이드·tanh, 대칭 비선형에 널리 사용)
-- fan_in과 fan_out을 모두 고려: Var(W)=2/(fan_in+fan_out) 수준
-- forward와 backward 둘 다에서 분산이 균형을 이루도록 한 절충안입니다.


- He/Kaiming 초기화 (ReLU 계열에 최적화)
-- fan_in만 고려하되, ReLU로 절반이 0이 된다는 점을 보정해 Var(W)=2/fan_in 정도로 더 크게 잡습니다.
-- CNN·Transformer 등 ReLU/Leaky ReLU가 많은 현대 네트워크에서 사실상 표준입니다.
강의에서 말한 것처럼, He 초기화는 ReLU, Xavier는 시그모이드/tanh에 잘 맞는 기본값 정도로 기억해 두면 실전에서 편리합니다.

가중치 분포의 분산을 고정(예: 항상 0.1)으로 두고 fan_in이 차이가 나면,
- 입력 노드가 많을수록 z=∑w i x i 에 더 많은 항이 더해져 z z의 분산이 커지게 됩니다.
- 층을 많이 쌓으면 이 효과가 반복되어, forward에서는 activation이 폭발하거나 죽고, backward에서는 그라디언트가 폭발/소실되는 문제가 생깁니다.
그래서 fan_in이 클수록 분산을 1/fan_in 비례로 줄여서 입력 수가 많을수록 각 가중치는 더 작게 초기화하고, fan_out도 함께 고려해 backward 시 그라디언트 분산도 안정적으로 유지하려는 게 Xavier/He 등의 핵심 아이디어입니다.


강의 마지막에서는 면접 단골 질문으로 “모든 가중치를 0 혹은 1로 초기화하면 왜 문제인가?”를 던집니다.
- 모든 가중치가 같으면, 각 노드의 출력이 완전히 대칭이 되어, 역전파로 흘러오는 그라디언트도 항상 동일해집니다.
- 그 결과, 학습 동안에도 모든 노드가 같은 값을 유지해 표현력이 늘지 않고, 여러 노드를 두는 의미가 사라지는 ‘대칭성(symmetricity) 문제’가 발생합니다.
따라서 “평균 0 근처의 랜덤값 + fan_in/fan_out 기반 분산”으로 초기화해
- 노드 간 대칭을 깨고
- 신호·그라디언트 분산을 층 깊이와 상관없이 안정적으로 유지하는 것이 현대 딥러닝에서의 웨이트 초기화의 핵심입니다.

이지 딥러닝 - 혁펜하임 | Easy! 딥러닝 3강 - 확률적 경사 하강법 (SGD: Stochastic Gradient Descent), momentum
[AI 인공지능 머신러닝 딥러닝] - 이지 딥러닝 - 혁펜하임 | Easy! 딥러닝 - 무료 강의 및 책 소개 이지 딥러닝 - 혁펜하임 | Easy! 딥러닝 - 무료 강의 및 책 소개한국어로 딥러닝 공부해봤다는 사람중
inner-game.tistory.com