게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
Artificial Neural Network(ANN)에 대한 소개?
게시물ID : science_57715짧은주소 복사하기
작성자 : 구차니
추천 : 1
조회수 : 652회
댓글수 : 2개
등록시간 : 2016/03/14 09:55:22
옵션
  • 창작글
예전.. 학부 시절에 ANN으로 번호판 인식하는걸 할 때 들던 생각인데..
이게 정말 지능이라고 해야 할까? 싶었는데
이게 인류 최고급의 바둑기사를 이기다니 참 신기한 세상이네요


인공신경망은 사람의 두뇌속 시냅스를 흉내냅니다.
시냅스 하나하나의 작동은 어떻게 될지 모르지만 전기적으로 / 화학적으로 작동하며
각 신호에 따라 시냅스에서 증폭이 되어 다른 시냅스로 전달되거나 감소하게 됩니다.

만약 입력받은 영상에서 숫자의 영역을 20x20 사이즈로 한다면
총 400개의 입력이 있게 되고
출력은 0~9 까지 총 10개로 수렴하게 됩니다.

다운로드.png

그리고 각각의 노드(원)에는 가중치가 있어 입력받은 값들을 곱해 값을 지니고 또 곱해서 다음 노드로 단순하게 값을 전달 합니다
위의 그림만 하더라도 노드별로 들어오는 화살표의 갯수를 보면 연산량이 적진 않음을 아실수 있을 겁니다.

즉, 노드의 숫자가 늘어 날수록 곱해야 하는 값들은 기하급수적으로 늘어나게 되기에
제가 배우던 2000년 중반만 해도 cpu가 꽤 힘들어 했고
숫자인식만 해도 학습이 몇시간 걸리곤 했었죠(망할 matlab 이 문제지만.. + 망할 pentium 4)
거기다가 돌려보면 국소해(local minima)에 빠져서 그럴싸한 답이 나오지만 조금만 다른 값이 들어가면 오답을 내기도 일수였구요.

아무튼, 그래픽 카드의 도움으로(얘네는 if는 드럽게 못하고 + - * / 는 겁나 잘하는.. 직진성과 물량빨로 밀어 붙이는 느낌?)
저 수 많은 연산량을 CPU에서 덜어줌으로서 지금과 같은 유효한 시간 내에 적절한 답을 내주는 시스템이 구성되게 된 것이죠.



하지만 저걸 구현해보면서 느낀건
단순하게 노드의 weight 값을 내가 만들어준 학습쌍(입력값-원하는 결과값)을 통해 수렴해 가면서
원하는 일정 결과가 나오게 되지만, 프로그램을 한 사람 입장으로는 일종의 블랙박스로 밖에 보이지 않습니다.
비슷한, 유사한 결과가 나오더라도 내부적으로는 노드의 값들이 모두 다를수도 있으니까요.

물론 인간의 뇌를 묘사하여 만든 알고리즘이기에 저걸 또 부정하게 된다면.. 
인간의 전기/화학반응으로 발생하는 두뇌작용 역시 지능이 아니다 라고 해야 하는 문제가 발생하기에 참.. 딜레마에 빠지게 되더군요


머.. 간략하게 요약하자면
알파고는 이런 1940년대 즈음의 인공 신경망에 기반을 두고 있으며
https://ko.wikipedia.org/wiki/인공신경망

미친듯한 연산력을 바탕으로 (cuDNN)
https://developer.nvidia.com/cudnn

빅데이터를 통해 사람이 수작업으로 예제 - 정답을 알려주지 않아도 되는(강화학습, q-learning)
https://en.wikipedia.org/wiki/Q-learning

DQN(Deep Q-learning Network)을 수행하는 프로그램일 뿐입니다만.. 그 수행 방식 자체는 인간을 모사했다는 점입니다.
https://deepmind.com/dqn.html


결론 : 그런거 없음. 걍 뿌직뿌직 글입니다.


사족 : 돌고 돌면 서로 통한다지만... 컴퓨터를 배울수록 알게 되는건 인간이며
        알아갈수록 알게 되는건 모른다는 점뿐 인 것 같습니다.

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호