티스토리 뷰

728x90

1. 참고 싸이트

 글을 작성하기 전 참고 했던 소스코드다.

 서울대학교 최성준님

 Aymeric Damien

Nathan Lintz

 

 

2. Multilayer Perceptron

 MLP를 공부하기 전 다들 단일 Perceptron을 공부하였을 것이라 생각한다.  코드를 한번 보면 쉽게 알 수 있듯이 하나의 결과를 얻기 위해 Perceptron을 중복으로 수행한것이다. 즉 Input이 x이고 output을 y일때 단일 Perceptron은 f(x) = y, Multilater Perceptron은 f(g(x)) = y라고 표현할 수 있다. 다만 g(x)의 결과값이 활성함수로 인해 f(x)의 계산에 사용될지 사용되지 않을 지 정해진다. 그리고 Hidden Layer가 증가할수록 f(g(h(k(x)))=y와 같이 적용되는 함수가 늘어난다고 생각하면 된다.

 

 

위 그림은 Hidden Layer가 1개인 MLP라고 볼 수 있다. Y를 구하기 위한 수식이 단순 Matrix 계산일 때 Hidden Layer의 Node인 Y1([1:3])은 X([1:5])W1([5:3])계산([1:5] * [5:3] = [1:3])으로 구해진다. 이후 Y1의 값들은 활성함수를 통해 1 또는 0으로 변경되는데 W2값과 계산([1:3] * [3:1] = [1]) 시 0인 Node들은 계산에 적용되지 않는다.

 

 

3. Source Code(1-Hidden Layer)

 아래 소스 코드는 Tensorflow 기초프로그래밍(청구문화사)의 예제이다.

1. x_square.txt

 

2. mlp.py

 

 

4. Source Code(Multi-Hidden Layer)

 아래 코드는 Layer의 개수를 동적으로 설정할 수 있도록 변형한 소스코드이다. 아래 코드를 여러 data에 적용해본 결과 Layer만 늘어난다고 성능이 좋아지지 않는 것을 알 수 있었다. 문제는 Cost에 따른 Weight 수정에 있다고 갱각하며 해결책으로는 역전파 알고리즘을 생각하고 있다.

 

1. mlp_multi.py


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함