머신러닝의 탄생
1950년 IBM의 Artur Samuel(아서 새뮤얼)이 IBM 701로 Checker 소프트웨어를 개발
체커 게임을 이용한 결과를 발표하면서 처음 사용했다.
생각하는 기계
1950년 튜링이 처음 정의한 이후 아직 합의된 정의는 없다.
한가지 공통적인건 "기계가 문제를 해결하는 방법을 스스로 찾는 것" 아라는 것이다.
프로그램이 많은 데이터를 경험하고 경험을 바탕으로 목표를 달성할 수 있도록 하는 알고리즘이 핵심이다.
Alan Turing : Turing Test의 고안자
영국의 수학자이자, 암호학자, 논리학자인 엘렌튜링은 Turing Test라는 것을 만들었다.
기계A와 인간 B, 질문자 인간 C가 있다.
질문자C 는 A, B 중 누가 인간인지 모르는 상태에서 A, B에게 질문을 던진다.
대답을 들은 C가 올바른 판정을 한 횟수가 실험 횟우의 절반 이하라면
기계 A가 사람과 구분할 수 없는 수준이라고 보는 것이다.
이런 테스트를 "이미테이션 게임" 이라고 부른다.
인공신경망의 시작
머신러닝의 첫번째 봄음 1960년대로 본다. 1968년 마빈 민스트가 요약한 인공지능의 역사에 따르면
1962년 이전의 인공지능은 여러가지 시행착오를 탐색해 Heuristics을 찾는 것을 가장 중요시 했다.
1958년에 프랭크 로젠블랫이 만든 Perceptron(퍼셉트론)
"걷고, 말하고, 보고, 쓰고, 번식하고, 스스로의 존재를 의식할 수 있는 전자 컴퓨터의 배아" 라고
소개한 기사가 나기도 했다.
인공지능의 흐름
1969 Marvin Minsky와 Seymour Papper의 저서 퍼셉트론 출간하였으나
퍼셉트론의 한계가 지적되며 인공자능의 연구는 다시 침체 되었다.
1970년애딍 주류 연구는 기호를 다루며 추론과 특징을 추출, 상태탐색을 중심으로 하였다.
- 기호주의(Symbolism) : 문제나 논리, 탐색을 사람이 이해할 수 있는 기호로 표현하여 답을 찾는 방식
- 연결주의(Connectionism) : 퍼셉트론처럼 연결 된 요소거 학습을 통해 해법을 스스로 찾도록 만드는 방식
Perceptron 퍼셉트론의 한계
퍼셉트론의 가장 잘 알려진 문제는 선형 분리만 가능하다는 점이었다.
선형분리가 불가능한 대표적인 XOR문제가 있다.
퍼셉트론이 가진 한계가 지적되면서 많은 연구자들이 연결주의에 기반한 인공지는 연구를 떠났다.
오류 역전파 알고리즘 ( Error Backpropagation)
1940년대 Warren McCulloch과 Walter Pitts가 획기적인 논문을 통해
자신들의 신경망 모델로 모든 종류의 이진 논리 게이트를 구현할 수 있음을 증명하였다.
* 여러층의 퍼셉트론이 탑을 찾을을 수 있는 연결상태로 바뀌는 것을 "학습" 이라고 할 수 있는데,
경사하상 (Gradient Descent) 방식으로 이를 가능하게 하는 방법을
David Rumelhart, Geoffery Hinton, Ronald Williams가 발표.
Deep leaning
층을 더욱 깊이 쌓는 심층망 연구가 시작되면서 오류 역전파 만으로는
모델을 제대로 학습시키기 어렵다는 것이 드러났다.
( 출력 부분의 오류가 입력 쪽에 가까운 네트워크 층까지 잘 전파되지 않았다.)
제프리 힐튼 교슈와 Yoshua Bengio, Yann LeCun등이
합성곱 신경망(Convolutional neural network) 모델을 만들어 돌파구를 마련하였다.
머신러닝은 무엇을 하려는 것인가?
머신러닝에서는 동작방식을 일일이 지시하는 프로그램을 만들지 않는다.
변경가능한 parameter에 의해 동작이 결정되는 "융통성 있는 프로그램"을 만든다.
이것을 "모델" 이라고 부른다.
파라메터가 바뀌면 동작도 바뀌게 되는데 좋은 동작이 나오도록 파라메터를 변경하는 과정을
"학습 (learning)" 이라고 부른다.
머신러닝은 무엇이며 어떤것이 있을까?
머신러닝이라는 용어는 아서 새뮤얼이 처음 사용한 것으로 알려져있지만
공학적인 정의로는 Tom Mitchelle이 그의 저서 "머신러닝"에 제시한것이 흔히 사용된다.
프로그램이 어떤 작업종류(T)에 속한 작업을 수행하면서 경험한(E)로 부터 P로 측정하는 성능이 개선된다면
T와 성능척도 P는 E로 부터 학습을 한다고 말할 수 있다.
예시)
컴퓨터에 필기체를 인식하는 학습
작업 (T) : 필기체를 인식하고 분류
성능(P) : 필기체를 정확히 구분할 확률
경험(E) : 필기체와 정확한 글자를 표시한 데이터 셋
Supervisied Leaning : 지도학습
데이터와 정답의 역할을 하는 label을 제공받는다.
입력을 출력에 매핑하는 일반적인 규칙을 학습하는 것
교사가 과일인지 채소인지 알려주고 컴퓨터가 새로운 물건을 보고 이전학습을 바탕으로 맞추는 것
unsupervisied Leaning : 비지도학습
외부에서 label을 제공하지 않고 학습알고리즘을 통해 스스로 어떤 구조를 학습하는 방법이다.
데이터의 숨겨진 패턴을 발견할 수 있다.
군집화(Clustering) 비지도 학습의 대표적인 예로
주어진 데이터의 패턴을 발견하여 둘 이상의 그룹으로 나누는 것이다.
Semi supervisied Leaning : 준지도학습
일부 데이터에만 label을 제공, 전체적인 학습의 정확도를 높일 수 있다.
일부 데이터에 부여된 레이블 정보를 이용하여 지도학습 방식의 훈련을 수행한 뒤
레이블이 없는 대다수의 데이터에 대한 학습을 수행한다.
Reinforcement learing : 강화학습
보상 및 처벌의 형태로 학습데이터가 주어진다.
차량운전이나 상대방과의 게임 같은 동적인 환경에서 프로그램의 행동에 대한 피드백만 제공되는 경우이다.
state 에 따라 agent의 action이 더 많은 reward를 받을 수 있도록 하는 policy를 만드는 것.
머신러닝 무엇이 문제일까?
머신러닝이란 파라메터에 따라 동작할 알고리즘을 선택하고 더 나은 동작을 하도록 수정하는 것이
핵심이라고 할 수 있는데, 핵심적인 문제는 데이터가 충분하지 않은 상태에서는 알고리즘과 데이터 모두
좋은 성능을 낼 수 없다는 것이다.
Data의 중요성
데이터 편향(Data bias)
: 확보된 데이터가 대표하는 분류를 제대로 가지지 못하고 일부 특성만 가진 경우
( 너무 적은 수의 표본을 추출하거나, 모집단에 속한 대상을 골고루 추출하지 못한 경우 발생)
부정확성(inaccuracy)
: 데이터 품질이 낮아 많은 오류와 이상치, 잡음을 포함하고 있는 경우.
무관함(irrelevance)
: 데이터는 확보했지만 이 데이터가 담고있는 특성들이 학습하려는 문제와 무관한 경우
'학습 정리 > 기계학습' 카테고리의 다른 글
| 기계학습 입문을 위한 강의 추천 (0) | 2022.04.25 |
|---|