DL basic_01

신형환·2022년 2월 7일
0
post-thumbnail

크로스 엔트로피 확인

https://seongkyun.github.io/study/2019/01/25/num_of_parameters/
https://wikidocs.net/62306

https://m.blog.naver.com/laonple/220808903260 << batch norm 설명

https://hugrypiggykim.com/2018/09/07/variational-autoencoder%EC%99%80-elboevidence-lower-bound/ << ELBO 설명

https://engineer-mole.tistory.com/30 << reparameterization trick

딥러닝 기본(1강부터 2강까지)

Neural Networks

Neural networks are computing systems vaguely inspired by the biological neural networks that constitue animal brains

Linear Neural Networks

SE loss를 사용하는 경사하강법을 사용해 데이터의 분포를 나타내는 최적의(SE loss를 최소화하는) 선 y=kx+j을 찾을 수 있다.
이때 SE loss를 사용하여 최적화 시킬 수 있는 변수들은 W(가중치)와 b(절편) 가 있다.

W부터 살펴보면 W(i)의 변화율에 따른 SEloss의 변화율을 구해야 다음 W(i+1)을 업데이트 할 수 있기 때문에
종속변수 SE loss에 대한 W의 편미분를 구해야 한다.

같은 방법으로 b의 편미분 역시 구해줄 수 있다.

각각의 도함수를 사용해 w(i+1)과 b(i+1) 을 구할 수 있다. 이때 손실함수를 미분하여 나온 상수 2는 사라지는데 이는 수학적으로 손실함수에 상수를 곱하거나 나누어도 최종 모델의 가중치나 절편에는 영향을 끼치지 않기 때문이다.

Beyoned Linear Neural Networks

이것은 다차원 배열에도 적용할 수 있다.

이 그림에서는 x의 input을 집어넣어 특정한 가중치와 곱한 후 편차를 더하여 y라는 output을 만드는 것이라 해석할 수 있다. (이때 b의 크기는 m x k 이다.)
데이터를 기준으로 하면 x 의 k열이 하나의 데이터라고 하면 x는 n개의 특징(input)을 가지는 k개의 데이터라고 할 수 있고 n개의 특징을 m x n의 w와 곱하므로써 output을 m개로 바꿀 수 있다. 즉 n개의 특징을 m개의 특징으로 맵핑하는것이다.

알아먹기 쉬운 그림으로 다시 설명하면

x는 d개의 특징을 가지는 n개의 데이터이고 w는 n개의 특징을 p개로 맵핑하는 가중치 행렬,
b는 바이어스 행렬이다.

우리는 이러한 과정을 단층 신경망 레이어라고 한다.


만약 단순하게 하나의 새로운 가중치행렬(W2)를 쌓는다면 이것은 단순히 행렬곱과 다를게 없고 이는 네트워크의 표현력을 떨어뜨린다. 하지만 다른 가중치행렬을 통과하기 전에 Nonlinear Transform을 거친다면 네트워크의 표현력을 극대화 시킬 수 있다.

Nonlinear Transform

=Activation funtions

Multi-Layer Perceptron


결론적으로 다층신경망구조는 입력레이어에 어떤 가중치(W)를 곱하고 바이어스를 더한 다음 엑티베이션함수를 씌워주는것의 반복이다.

0개의 댓글