티스토리 뷰
인공신경망은 퍼셉트론과 앞에서 공부했던 활성화 함수들의 아이디어를 결합한 것입니다.
2020/09/15 - [Study/인공지능] - Heaviside 함수 Sigmoid함수 ReLU 함수, 신경망과 활성화 함수 ( 인공지능 기초 #4 )
2020/09/14 - [Study/인공지능] - 다층 퍼셉트론 XOR 논리회로 표현하기 , 단층으로 안되는 이유 ( 인공지능 기초 #3 )
2020/09/13 - [Study/인공지능] - 퍼셉트론 AND, NAND, OR 논리회로 표현하기 ( 인공지능 기초 #2 )
2020/09/13 - [Study/인공지능] - 퍼셉트론, 뉴런 네트워크의 모방 ( 인공지능 기초 #1 )
오늘 알아볼 내용은 3단계로 구성된 3층 인공신경망입니다.
1은 고정된 값이며(*b : 편향) x1과 x2는 입력에 따라 값이 바뀝니다.
0층에서 1층으로 갈 때, 퍼셉트론에서 들어오는 전기신호에 가중치를 곱하고 합칩니다.
합친 값을 sigmoid 함수로 신호 전달을 수행합니다. [ 이유는 이전 시간에 알아봤듯이 미분을 해야하기 때문입니다. ]
1층에서 2층:
sigmoid 함수로 전달된 전기신호 z1 ,z2, z3를 또 퍼셉트론으로 가중치를 곱하고 합친 값을 전달합니다.
합친 값을 sigmoid 함수를 적용해서 신호 전달을 수행합니다.
2층에서 3층 :
여기도 그 전과 같이 가중치를 곱하고 편향을 더하는데, 여기서는 sigmoid함수를 사용하기 않고 softmax 함수를 적용합니다.
softmax 함수 'σ()' 는 확률벡터로 변환해주는 역할을 합니다.
σ()
3층의 인공신경망 이기 때문에 많은 연산이 들어간다.
많은 값의 w(가중치)와 b(편향) 이 있는데 이들을 층별로 구분하기 위해 문자의 윗부분에 숫자로 목적지의 층으로 적어 구별해준다.
w아래에는 숫자가 두자리수이다 이는 몇번째 뉴런에서 몇번재 뉴런으로 갔는지를 뜻한다.
(층)
w
입력, 출력
x와 a, z를 보면 아래부분에 숫자가 있는것을 볼 수 있는데 이는 몇번째 뉴런인지에 대한 설명이다.
(가령 1층의 a1, a2, a3 와 z1, z2, z3는 첫번째 뉴런 a1,z1 두번째 뉴런 a2,z2 세번째 뉴런 a3,z3 || 2층의 a1, a2 와 z1, z2는 첫번째 뉴런 a1,z1 두번째 뉴런)
즉 1층의 z3에서 2층의 a1으로 갈 때 사용하는 가중치는
2
공부하고 있는 밑바닥부터 시작하는 딥러닝 교재에서는 Translate 한 후의 행렬의 형태로 사용을 하고 있다.
일반적으로 행렬은 세로로 사용하는 것이지만, 사실 이것을 Translate하면 책과 같은 형태로 사용할 수 있다.
Affine -> Sigmoid -> Affine -> Sigmoid -> Affine -> Softmax
가중치를 곱하고, 편향을 더하는 과정을 Affine 이라고 부릅니다.
Sigmoid로 선형적 구조로 만들고
다시 Affine 하고 Sigmoid하고 를 반복하다가 마지막에 Softmax를 이용해 확률적으로 바꾸어줍니다.
2020/09/17 - [Study/인공지능] - 확률 벡터 (Softmax 변환) overflow 대책 증명
'Study > 인공지능' 카테고리의 다른 글
MNIST, 손글씨 구분하기 + Tensor 개념 (인공지능 기초 #6) (1) | 2020.09.17 |
---|---|
확률 벡터 (Softmax 변환) overflow 대책 증명 ( 인공지능 기초 #5-2) (0) | 2020.09.17 |
Heaviside 함수 Sigmoid함수 ReLU 함수, 신경망과 활성화 함수 ( 인공지능 기초 #4 ) (0) | 2020.09.15 |
다층 퍼셉트론 XOR 논리회로 표현하기 , 단층으로 안되는 이유 ( 인공지능 기초 #3 ) (0) | 2020.09.14 |
퍼셉트론 AND, NAND, OR 논리회로 표현하기 ( 인공지능 기초 #2 ) (0) | 2020.09.13 |