야사와 만화로 배우는 인공지능 1
1943년 워런 맥컬런과 피츠가 뇌신경을 처음으로 모델링
1949년 도널드 헵이 <헵의 학습이론>을 발표
1956년 다트머스회의에서 마빈 민스키가 최초로 인공지능이라는 용어를 사용, 개념을 확립 (기호주의)
- 1956 다트머스 여름 연구 프로젝트=> 뉴햄프셔에 있는 다트머스 대학에서 10여명의 과학자가 모여 인공지능을 연구할 것을 제안(존 메카시, 마빈 민스키, 클로드 섀넌, 레이 솔로모노프, 앨런 뉴얼, 허버트 사이먼, 아서 샤무엘..)
1958년 플랭클린 로젠블랫이 맥컬런과 피츠의 뇌 모델 + 헵의 학습이론에서 힌트를 얻어 weight를 추가함으로써 퍼셉트론을 만들어낸다
- 퍼셉트론은 순입력함수의 리턴값을 임계값을 기준으로 1과 -1로 분류.
- 실제값과 예측값의 활성함수 리턴값이 다를 경우 w(가중치) update
- 플랭클린 로젠블랫은 당시 주류인 '기호주의' 대신 '연결주의' 를 선택하게 된다
기호주의(Symbolism) VS 연결주의(Connection)
# 기호주의
- 기호주의는 AI 암흑기(~1980) 라고 불리던 시대에 우세했던 학파
- 컴퓨터 작동 방식에 맞게 기호와 규칙을 사용하는 규칙기반(Rule-Based) 인공지능
- 컴퓨터 작동 방식으로 인공지능을 구현 할 수 있다는 논리이며, 논리적으로 설명한 문제를 다룬다
ex) A=B, B=C일때 A=C 로 귀결 시킬 수 있는 인공지능. 간단한 공식으로 운영되는 체스나 장기를 두는 인공지능을 만들때 사용
# 연결주의
- 사람의 뇌 구조를 본떠서 기계의 지능을 구현하자고 주장한 학파.
- 연결주의라고 불리는 이유는 ‘뇌 신경망이 시냅스로 여러 뉴런이 연결된 구조’를 가지고 있기 때문. 다시 말해 시냅스 연결을 구현하자고 주장
- 뉴런의 연결을 모방한 정보처리 과정을 사용하는 신경망(Neural Network)기반 인공지능
- 뇌처럼 하나의 개념이 여러 곳에 흩어져서 표현되며, 논리적으로 설명하기 어려운 문제를 다룬다
- 특정 세기 이상의 값에 도달하면 0과 1로 정보를 처리한다는 개념
- 처음에는 백지 상태이며, 다수의 사례를 주고 경험 함으로써 스스로 천천히 학습
- 연결주의의 알고리즘을 구현한 첫 모델이 "퍼셉트론"
ex) 이미지속의 고양이, 강아지 특징을 인식하고 이를 고양이 또는 강아지라는 결론으로 도출하는 방식을 연결주의 인공지능
마빈 민스키와 시모어 페퍼트는 퍼셉트론의 한계를 수학적으로 증명하면서 플랭클린 로젠블랫를 무너뜨림
- 로젠블랫의 단순 퍼셉트론은 XOR문제를 해결할 수 없다!(By 퍼셉트론즈 - 마빈 민스키의 저서)
이후, 신경망에 대한 관심은 줄어들고 다시 인공지능쪽에 관심이 몰리게 되었다
- 탐색과 문제해결을 위한 새로운 알고리즘들이 개발되고 실험
- 한편 인공지능개발도 한계를 맞이하게 된다(혁신적인 알고리즘의 개발도 계속 나올 수는 없는 법..)
- 알고리즘보다는 응용쪽에 눈을 돌려 전문가 시스템의 구현에 몰두
인공지능VS신경망의 문제해결 방식?!
# 인공지능
- 복잡한 문제의 해결을 위하여 여러 가지 형태의 지식을 이용한다. 때로는 인간의 문제해결 행위를 면밀히 관찰함으로써 필요한 지식을 얻기도 한다
- 전문가 시스템의 구현
feat. 전문가 시스템이란?!
인간이 특정분야에 대하여 가지고 있는 전문적인 지식을 정리하고 표현하여 컴퓨터에 기억시킴으로써, 일반인도 이 전문지식을 이용할 수 있도록 하는 시스템
# 신경망
- 생물학적인 시스템에 근거한 지능적인 시스템의 구현에 노력하고 있다. 생물학적인 시스템은 수많은 단순한 뉴런과 같은 처리기를 병렬로 처리하는 것
- 학습과 병렬처리 구현에 중점
1960 쿠플러 박사는 빛의 정보를 처리하는 각막의 뉴런을 연구
1960년 버나드 위로 교수와 제자 테드 호프가 아달라인(Adaline)을 개발
- 순입력함수의 리턴값과 실제 결과값의 오차가 최소화되도록 가중치를 조정 (adaptive)
- 오차를 계산하기 위해 편차제곱을 합한다 (비용함수)
- 실제값과 예측값의 차이가 있으면 경사하강법으로 가중치를 update
- 비용함수는 2차 함수인데, 이 곡선의 기울기가 0에 수렴할 때 까지 w를 조정하면 비용함수가 최저가 된다
- 즉, 비용함수가 최저가 되는 W값을 찾는 문제로 귀결
1969년 브라이손과 위치호에 의해 역전파(Back Propogation)알고리즘이 세상에 나옴
1970년 데이빗 허블과 토르스튼 위즐은 다양한 시각자극에 대한 반응을 기록해 시각정보가 뇌에서 처리되는 과정을 연구
- 1981년 노벨 생리의학상을 수상
1979년 쿠니히코 후쿠시마는 네오 코크니트론을 만들게 됨
네오 코크니트론이란?!
존 홉필드의 홉필드 네트워크(Hopfiled Network)(1982)
홉필드네트크워란?!
- 퍼셉트론(perceptron) 등은 연산이나 학습 과정에서 지속적으로 가중치(weight)가 변경되는 알고리즘
- 홉필드 네트워크(Hopfield network)는 고정된 가중치를 이용하여 완전한 정보를 연상
- 홉필드 네트워크 과정
1) 학습 패턴에 양극화 연산을 적용
feat. 양극화란?!
- 양극화(bipolarization): 0과 1로 표현된 데이터를 -1과 1로 변환하는 것
2) 학습 패턴에 대한 홉필드 네트워크의 가중치 행렬을 계산
3) 계산된 가중치 행렬을 저장
4) 입력 패턴이 들어오면 저장된 가중치 행렬을 이용하여 입력 패턴에 대한 학습 패턴을 연상
1982년 폴 워버스의 Back Probagation 알고리즘의 논문 발표
1982년 존 홉필드의 홉필드 네트워크
- 두뇌가 하는 것은 어떤 의미에서 계산이며 상호작용하는 뉴런 기능의 시스템이
어떻게 수학적 개념과 구조로 기술 되어야 하는지에 대해 눈을 뜸
수상돌기: 입력
세포체: 뉴런(연산)
시냅스: 가중치
축색돌기: 출력
1984년 제프리 힐튼의 볼츠만머신(Boltzmann Machine)
볼츠만머신이란?!
- 홉필드네크워크에 신경망 알고리즘을 결합시켜 만듬
1986년 데이빗 럼멜하트와 제프리 힌튼에 의해 Back Probagation이 다시 정리 되어 발표
- Back Progation의 알고리즘으로 다층신경망의 문제를 해결
- 신경망이 깊어질 수록 학습이 힘들어지는 Vanishing Gradient 문제 발생
1989년 제프리 힌튼 교수 지도아래에서 얀 레쿤, 요슈아 벤지오와 함께 네오쿠크니트론(후쿠시마박사)+ 볼츠만 머신 + 백 프로퍼게이션을 결합하여 CNN을 완성
1991년 유르겐 슈미트 후버 RNN
- 자연어나 음성등은 시간의 흐름을 알아야 한다
- 기존신경망에 시간의 흐름을 고려한 모델
- 그러나 구현에 쉽지 않다. 왜냐하면 1보다 작은 가중치를 하다보면 0에 수렴해 버리고, 1보다 큰 가중치를 반복하다보면 무한대로 발산하게 된다
- 이 문제점을 해결한 경험을 가지고 있다. 영화는 이미지를 연속시켜 이전 이미지의 잔상에 새로운 이미지를 더해서 움직이는 효과를 낸다
1991년 셉 호흐라이터의 LSTM, 1997년에 정식으로 세상에 알려진다
- 계산이 많다보니 성능이 떨어지게 됨
- 이런 문제점을 해결하고자 GRU라는 모델을 제안 (by 조경현 교수)
1998년 얀 레쿤은 LeNet5를 개발함으로써 딥러닝의 상용화에 성공
LeNet5이란?!
- 이미지 분류용 CNN 들중 가장 기본적인 알고리즘
- 다양한 버전 LeNet1..2..가 있지미만 최종이 LeNet5이다
테우보 코호넨 자기조직화지도(Self-Oraganization Map)
- 대뇌피질의 시각피질의 학습 과정을 모델화한 인공신경망으로써 자율 학습에 의한 클러스터링을 수행하는 알고리즘
- Step
1) 연결가중치를 초기화
2) 새로운 입력 벡터를 제시
3) 입력 벡터와 모든 뉴런들간의 거리를 제시
4) 최소거리에 있는 출력 뉴런을 선택
5) 선택된 뉴런과 그 이웃에 있는 뉴런들의 연결 가중치를 조정
6) 지정된 학습횟수까지 반복
델타규칙(Delta Rule)
- (실체값-예측값) 계산 오차 보정
- 여러층의 퍼세브론 환경에서는 적용하기가 쉽지 않음
2003년 제프리 힌튼, 얀 레쿤, 요슈아 벤지오에 의해 딥러닝의 단어가 생김
여러층으로 구성된 신경망을 학습시키는 방법을 찾자
- 제프리 힌튼이 찾은 방법은 볼츠만 머신
- 요슈아 벤지오가 찾은 방법은 오토 인코더
- 제프리 힌튼, 얀 레쿤, 요슈아 벤지오가 딥러닝 단어를 만듬
2006년 제프린 힌튼 < A fast learning algorithm for deep beliefs nets >
- 깊은 신경망 학습을 위해서는 초기화 제일 중요하다
- 그 방법으로 1980년대 초 자신이 연구했던 볼츠만 머신을 응용한 RBM 으로 두개의 층을 쌓아가는 방법을 제시
(신경망을 RBM으로 초기화하여 Vanishing Gradient 문제를 해결 => 이는 Vanishing Gradient 문제를 해결 할 수 있다는 가능성을 제시)
- 좋은 데이터로 잘 학습시키는 것도 중요하지만, 신경망의 초기값을 어떻게 주느냐가 학습에 큰 영향을 미친다
2010년 자비에 글로럿의 정규분포로 초기화
- Input노드와 Output노드 수에 비례하여 정규분포로 초기화
2015년 케이밍 허는 자비에 초기화 방식( Input노드와 Output노드 수에 비례하여 정규분포로 초기화 ) 에서 2로 나누도록 수정