on
[211013] ANN의 등장배경 및 실습
[211013] ANN의 등장배경 및 실습
1. 시냅스의 화학물질의 수> weights, activation function
활성화 함수: 입력 신호의 총합을 출력 신호로 변환
sigmoid> Tanh> ReLu (보다 심플해진 것)> Leaky ReLu
*softmax- 활성화 함수 중 하나. 각 확률값을 가져다 준다. 최종 output층에 사용된다.
2. 델타규칙
오차를 반영하는 방식- 델타규칙
10점을 예상했으나 8점을 쐈을 시 오차인 2를 반영하여 예상값 9 조정> 오차인 1 또 반영하여 조정... 반복
어떤 요소가 얼마나 오차에 기여했는지를 계산한다.
원숭이인데 개일 경우 오차를 어떻게 계산할 것인가? >어떤 경우인지 보고 알맞게 손실함수를 사용하면 된다. 연산 하기 힘든 값도 있기 때문이다.
*cost function- MSE(단순 숫자), CE/cross entropy(분류) 등.
3. 단순 퍼셉트론/ single layer 문제점 (마빈 민스키)
선을 하나만 그어서 어떻게 나눌 것인가?
위와 같이 multi layer의 필요성이 대두되었으나 학습의 문제가 있었다.
4. back propagation (다층 퍼셉트론 환경에서 학습을 가능케 해주는 algorithm) 등장
출처- 하용호님 발표
편미분을 사용하여 오차를 점차 줄여나가는 방식> 최적값을 찾아가는 과정
현재 keras optimizer 부분에 정의되어 있다.
5. 행렬연산- 게임 시 화면 전환이나 deeplearning시 같은 내부 연산이 필요하기 때문에 gpu가 필요하다.
하나의 노드는 (선x inputs+ 보정값(bias)= 내부)의 바깥을 sigmoid(함수)로 감싼 것. (밑의 공식이 들어있는 것이다.)
선형+ 비선형= 비선형 (명확한 함수의 세계와 명확하지 않은 것이 합쳐져 명확하지 않게 됐다. =black box model)
*weight변수- 선의 굵기
출처- 3bluelbrown
비선형 변환을 하는 순간 이전까지 수학적 계산이 가능했던 것이 명확해지지 않게 된다.
6. 학습의 대상은 선 그 자체. (weight 변수)
한개도 빠짐없이 다 빽빽하게 연결되어 있다고 해서 dense layer이다.
출처- 3bluelbrown
즉 학습시킬 대상은 총 13,002이다.
7. ANN MNIST 실습
optimizer= rmsprop: 제일 무난하게 사용 가능
현재 메모리에 올라와있는 것(=keras) 표시 (import keras를 통해)
*이전엔 tensorflow와 keras가 구분되어 있었지만 현재는 tensorflow밑에 편입되어 있다. (from tensorflow import keras)
mnist 데이터 분배해준다. 현재 이것저것 데이터가 추가되어 있는 것을 확인할 수 있다.
데이터의 내부를 살펴보면 다음과 같다.
출처- 3bluelbrown
맨 왼쪽 열은 label이고, 나머지가 데이터이다. 즉 784+ 1(label)해서 785이다.
shape을 찍어보면 위와 같이 28*28 형태의 이미지 파일이다.
선의 갯수= 784(input 데이터 28*28)* 512(노드 개수)+ 512(노드 하나 당 1개의 bias)= 401920
그 다음 선의 갯수= (앞에서 줄어들었기에) 512* 256+ 256= 131328
...
from http://devlvup8253.tistory.com/10 by ccl(A) rewrite - 2021-10-14 01:26:50