[부캠AI] 1주차 AI Math 5-6강

🔎 딥러닝 학습방법 이해하기

신경망을 수식으로 분해

데이터를 모아둔 행렬: X\bold X

가중치 행렬: W\bold W

절편(각 행들의 값이 같음): b\bold b

신경망
X가 주어졌을 때 O랑 연결하는 그림으로, 화살표가 가중치W\bold W 역할하며 화살표의 갯수는d×pd \times p

소프트맥스 연산

모델의 출력을 확률로 해석할 수 있게 변환

지수함수를 사용!

분류문제를 풀때 선형모델과 소프트맥스를 결합하여 예측

def softmax(vec):
	denumerator = np.exp(vec-np.max(vec,axis=-1,keepdims=True))
	numerator = np.sum(denumerator,axis=-1,keepdims=True)
	val = denumerator / numerator
	return val

# np.max를 사용하는 이유: 지수가 너무 커지면 overflow가 발생

원-핫 벡터

최대값을 가진 주소만 1로 출력

추론을 할 때는 softmax말고 원-핫 벡터를 사용함


활성함수를 이용! → 선형모델의 결과물을 우리가 원하는 의도대로 바꿔서 해석 가능!

활성함수?

비선형 함수로서 딥러닝에서 매우 중요한 개념!

sigmoid 함수나 tanh함수는 전통적으로 많이 쓰였는데 딥러닝에서는 ReLU함수를 많이 쓰고 있다


잠재벡터 H\bold H (z\bold z에 활성함수σ\sigma 씌운)

가중치 W(2)\bold W^{(2)}b(2)\bold b^{(2)}를 통해 다시 한 번 선형변환해서 출력

               			       2층(2-layers) 신경망

다층 퍼셉트론 (multi-layer perceptron, MLP)

신경망이 여러층 합성된 함수

σ(Z)\sigma(\bold Z)(σ(z1),...,σ(zn))(\sigma(\bold z_1),...,\sigma(\bold z_n))

L까지 순차적인 신경망 계산을 순전파(forward propagation)라고 한다

왜 여러 층?

이론적으로 2층 신경망으로도 임의의 연속함수를 근사할 수 있다.

그러나 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적!

딥러닝 학습원리: 역전파 알고리즘

역전파(backward propagation)를 이용하여 각 층에 사용된 패러미터(W\bold Wb\bold b)를 학습

손실함수를 미분할때 사용하며, 각 층 패러미터의 그레디언트 벡터(Z\bold Z)를 구한 후 윗층부터 역순으로 계산한다.

역전파 알고리즘 원리

합성함수 미분법인 연쇄법칙 기반 자동미분을 사용

※ 각 노드의 텐서 값을 기억해야 미분계산이 가능하다 (그래서 메모리를 좀 더 씀)
but 속도적으로 나누기보다 곱하기가 더 빨라서 역전파로 하는게 더 효율적

🎢 확률론 맛보기

딥러닝에서 확률론???

사실 딥러닝은 확률론 기반의 기계학습 이론에 바탕을 두고 있다.
교차엔트로피 경우, 모델 예측의 불확실성을 최소화하는 방향으로 학습하도록 유도한다.
-> 분산 및 불확실성을 최소화하기 위해 두 대상을 측정하는 방법을 알아야 한다.

확률분포 = 데이터의 초상화

데이터는 확률변수로, (x,y)(\bold x, y)라 표기하며, 데이터 공간에서 데이터의 분포를 DD라 표기한다.

파란점: 데이터 공간상에서 관측한 데이터

결합분포 P(x,y)P(\bold x,y)는원래확률분포 DD를 모델링한다. 주변확률분포 P(x)P(\bold x)는 y에 대한 정보를 주진 않으며 결합분포에서 유도가 가능하다.

연속확률분포의 모양처럼 보이지만 빨간색칸으로 나누면 이산확률분포처럼 볼수있음.

조건부확률과 기계학습

조건부확률 P(yx)P(y|\bold x)는 입력변수 x\bold x에 대해 정답이 yy일 확률

이 뒤로는 진짜 모르겠다 나중에 공부해서 정리해야지

좋은 웹페이지 즐겨찾기