본 포스팅은 충남대 이종률 교수님의 강의자료를 바탕으로 작성한 글입니다.
Artificial Neuron
summation+activation
Input이 들어오면 가중치가 곱해진 후 summation unit을 통과하게 되고, 활성화함수를 통과하게 된다.
AND나 OR는 linearly separable하지만, XOR는 그게 안 된다.
그럼 이제 더 많은 뉴런이 필요하게 된다.
보통 신경망은 각각 여러 뉴런을 포함하는 층으로 구성되고,
각 레이어는 입력 벡터, 가중치 행렬, 편향 벡터, 출력 벡터와 연결된다.
보통 근사 이론은 유한한 수의 가중치를 가진 최소 1개의 은닉층을 가진 신경망에 의해 잘 근사될 수 있다.
딥러닝은 어떻게 작동하느냐 하면,
Training
- 모델의 가중치 파라미터를 계산해서 학습 오류를 최소화한다.
Test
- 학습된 모델에 인풋을 넣는다.
모델은 분포의 기본 패턴을 추정하는 함수이다.
분포가 무엇인지는 알 수 없지만, 무작위로 샘플링된 학습 데이터가 있다.
-> 결과적으로 모델 예측값과 실제값 사이 손실을 최소화하는 것이 목적.
MLP의 FC
입력 : d차원 벡터
출력 : d'차원 벡터
벡터의 각 요소는 뉴런에 해당한다.
그럼 이미지는 어떨까?
이건 보통 2D 배열들로 이루어진다.
이걸 MLP의 입력으로 쓸 수 있을까? 어떻게?
뭐 flatten시키면 쭉 펼칠 수야 있겠지만, 파라미터가 너무 많이 필요하고, 위치 정보를 잃게 된다.
Convolution
2D window에 대한 출력 뉴런으로 값을 집계하는 것인데,
그 집계값은 커널의 가중치에 대한 가중합이다.
그 커널은 이리저리 이미지의 모든 곳을 움직인다.
입력에서 커널이 적용되는 부분을 receptive field라 한다.
그리고 커널이 모두 통과해서 결과로 나온 출력이 activation map이다.
output w = input w - kernel w
그런데 이렇게 하면 이미지의 크기가 줄어드는데, 이를 방지하기 위해 대부분 padding을 쓴다.
예를 들어 32*32*3 크기의 이미지에 6개의 5*5*3 크기의 필터를 적용시키면 총 출력은 28*28*6이 된다.
Pooling
이건 또다른 방법으로 window를 가지고 뉴런을 집계하는 방법인데,
avg pooling : window가 적용되는 부분의 평균을 출력으로
max pooling : window가 적용되는 부분의 최댓값을 출력으로
'AI > 데이터과학' 카테고리의 다른 글
Centrality (0) | 2024.12.14 |
---|---|
Page Ranks and Random Walks in Graph (3rd page 계산 추가) (1) | 2024.12.14 |
Vector Space Model, TFIDF, Word2vec (68-70p 추가) (2) | 2024.12.13 |
결정트리(Decision Tree) (1) | 2024.12.12 |
회귀/분류 (0) | 2024.12.10 |