인공지능/Machine & Deep Learning

인공신경망(Neural Network)

해리누나 2023. 4. 4. 18:33
728x90
반응형

 

해당 내용은 유튜브 채널 '코딩애플'의 쉬운 딥러닝 강의를 정리한 글입니다.

( 강의링크)

https://www.youtube.com/watch?v=8oMwnXfVH14 

 

 

 

해당 모델은 저번시간에 만든 머신러닝 모델이다.  (https://bruders.tistory.com/70?category=956446 )

최적의 매개변수 값을 찾게 시키는게 머신러닝이라 하였다.

 

초기 단순한 형태의 모델에서 조금 더 복잡하고 정교하게 예측하기 위해서 중간에 층을 더 두면 되지 않을까? 라는 생각이 나온다. 생각이 나오게 된 계기는 "기계가 사람처럼 생각할 수 있으면 좋지 않을까?" 라는 가정이다.

 

 

 

그렇담 사람이 어떻게 생각하는지를 볼 필요가 있다.

사람의 뇌에는 뉴런이라 불리는 굉장히 많은 신경세포가 존재한다. 각각의 신경세포의 가지들이 뻗어나와 서로 연결이 되어있는데, 이 가지와 가지를 이어 신호를 주고 받는 부위가 바로 시냅스(Synapse)다.

 

사람의 뇌는 이 뉴런과 시냅스를 이용해 신호를 주고받고 생각이 전달되는 등의 동작을 한다. 또한 사람의 기억은 시냅스에 저장이 된다. ( 뇌에서 기억이 저장되는 장소인 ‘기억저장 시냅스’  : https://www.snua.or.kr/magazine?md=v&seqidx=8448 )

 

그렇다면 이를 본따서(뇌의 동작방식) 모델을 만든다면 기계도 사람처럼 생각할 수 있지 않을까? 라는 가정에서 딥러닝이 출발한 것이다. 이렇게 사람의 뇌의 신경망의 형태를 모방한 모델을 인공신경망(ANN, Artificial Neural Network) 또는 간략하게 신경망(Neural Network)라고 한다. [딥러닝은 인공신경망이 발전한 개념이다.]

 

 

출처: https://velog.io/@jhlsuper/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%9D%B8%EA%B3%B5-%EC%8B%A0%EA%B2%BD%EB%A7%9D

 

인공신경망은 이렇게 입력층, 중간층(은닉층), 출력층 3가지의 층으로 이루어져있으며 인공뉴런들이 상호 연결되어 있다.

 

 

출처: https://velog.io/@jhlsuper/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%9D%B8%EA%B3%B5-%EC%8B%A0%EA%B2%BD%EB%A7%9D%EB%8B%A8%EC%B8%B5-%ED%8D%BC%EC%85%89%ED%8A%B8%EB%A1%A0-%EA%B9%8C%EC%A7%80

 

위처럼 인공신경망 내 은닉층이 하나가 아닌 여러개로 이루어져 있으면 다층신경망이라 한다. 또한 은닉층이 여러개일수록 성능이 좋다.(많다고 사실 무조건 좋은 것은 아닌데 이에 관한 설명은 나중에...)  왜 그런걸까?

 

 

은닉층을 생각을 저장하는 공간이라고 생각하면 이해하기가 쉬워진다.

예시를 들어보자. 지난번처럼 6월과 9월 모의고사의 성적을 토내로 수능 성적을 예측하는 문제가 아닌 조금 더 복잡하게 4월부터 9월까지의 성적을 기반으로 수능 성적을 예측해야 한다고 가정해보자.

 

 

 

은닉층이 없이 모델을 만든다면 위와같은 단순한 모델이 만들어 질것이다.

여기에 은닉층을 추가시켜보자. (이 은닉층을 기계가 생각을 잠깐 저장하는 공간으로 이해해보자.)

 

 

 

기계한테 시키기 전에 사람으로서 어떻게 계산할지 고민해보자. 4월부터 6월까지의 성적은 그다지 수능 점수에 영향을 끼치지 않을거라 판단해 성적의 평균을 구해 은닉층에 초반점수라고 라벨링을 해서 저장해준다. (실제로 저렇게 이름을 쓰지는 않음)  7월부터 9월까지의 점수도 후반점수라 라벨링해 인공뉴런에 저장해준다. 그리고 초반점수는 수능점수에 30%의 영향을, 후반점수는 70%의 영향을 가지고 있다고 추론해보았다.

 

이제 기계한테 시켜보자. 기계도 때려맞추기를 통해 여러가지 생각을 해 볼 것이다. 9월 성적이 제일 영향을 많이 미추지 않을까? 4월성적은 가장 적게 미추겠지? 등의 자기만의 생각을 하게 된다. 결국은 여러 시도끝에 예측이 좋게 나오는 생각을 하게 될 것이다. 

 

 

 

다른 예시를 보자.

 

 

차 사진을 인공신경망에 넣어 학습을 시켜보았다.

그랬더니 레이어들을 거쳐가면서 차 사진에 있던 동근 부분을 추출을 해서 바퀴라고 생각을 해두고 차의 로고부분을 떠서 아 이게 차의 로고구나 생각을 하는 등 이런식으로 생각을 저장해서 추론을 하더란다. 이런 행위를 특성추출(Feature extraction) 이라고 한다. 즉 기계가 데이터의 특성을 스스로 추출해서 결과에 도출한다는 얘기다.

 

 

 

원래 전통적인 머신러닝은 이렇지 않다. 똑같이 차 사진을 학습시킬 때, 머신러닝에 경우, '이게 바퀴다. 이게 로고다, 이게 창문이다' 라는 가이드를 사람이 일정 부분 줘야했다.

 

딥러닝은 그런 과정이 필요하지 않다. 둥근게 바퀴인지 뭔지 스스로 생각하게 만들 수가 있다. 대신에 데이터가 좀 더 필요하다. 아무튼 이러한 장점들이 있어서 뉴럴 네트워크를 이용해 우리가 머신러닝모델을 만들면 좀 더 좋은 결과를 기대할 수 있다는 걸 알 수 있다.

 

 

 

 

 

 

참고

https://velog.io/@jhlsuper/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%9D%B8%EA%B3%B5-%EC%8B%A0%EA%B2%BD%EB%A7%9D%EB%8B%A8%EC%B8%B5-%ED%8D%BC%EC%85%89%ED%8A%B8%EB%A1%A0-%EA%B9%8C%EC%A7%80

https://velog.io/@jhlsuper/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%9D%B8%EA%B3%B5-%EC%8B%A0%EA%B2%BD%EB%A7%9D

https://brunch.co.kr/@gdhan/6

https://aws.amazon.com/ko/what-is/neural-network/

 

 

 

728x90
반응형