인공 지능과 머신 러닝, 딥러닝
https://drive.google.com/uc?id=1N7YCWI9TKGd3mN249vnwqd6o_bXJxKQh
인공 지능
- 인공 지능은 1950년대 초기 컴퓨터 과학 선각자들이 ‘컴퓨터가 생각할 수 있는가?’라는 질문을 하면서 시작되었음
- 이 분야에 대한 간결한 정의는 ‘보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구활동’이다.
- AI는 머신 러닝과 딥러닝을 포괄하는 종합적인 분야로 학습 과정이 전혀 없는 다른 방법도 많이 포함된다.
- 오랜 기간 많은 전문가들이 프로그래머들이 명시적인 규칙을 충분히 많이 만들어 지식을 다루면 인간 수준의 인공 지능을 만들 수 있다고 믿었는데, 이런 접근 방법을 심볼릭 AI(Symbolic AI)라고 하며, 1950-1980년대까지 AI 분야의 지배적인 패러다임이었다.
- 1980년대 전문가 시스템(expert system)의 호황으로 그 인기가 절정에 달했다.
- 심볼릭 AI가 체스 처럼 잘 정의된 논리적인 문제를 푸는데는 적합하다는 것이 증명되었지만, 이미지 분류, 음성 인식, 언어 번역 같은 더 복잡하고 불분명한 문제를 해결하기 위한 명확한 규칙을 찾는 것은 아주 어려운 일이었다. 이런 심볼릭 AI를 대체하기 위한 새로운 방법이 바로 머신 러닝이다.
머신 러닝
- 최초의 기계적 범용 컴퓨터인 해석기관(Analytical Engine)을 발명한 사람은 찰스 배비지(Charles Babbage)였다.
- 범용 컴퓨터란 개념이 정의되지 않은 때였기 때문에 해석 기관은 해석학(mathematical analysis) 분야의 계산을 자동화 하기 위해 기계적인 연산을 사용하는 방법이었을 뿐이었다. 그래서 이름이 해석 기관이다.
- 찰스 배비지의 친구자이 동료였던 –더불어 최초의 프로그래머로 인정받는– 에이다 러브레이스(Ada Lovelace)는 이 발명에 대해 다음과 같이 언급했다.
- “해석 기관이 무언가를 새롭게 고안해 내는 것은 아니다. 우리가 어떤 것을 작동시키기 위해 어떻게 명령할지 알고 있다면 이 장치는 무엇이든 할 수 있다. … 이런 능력은 우리가 이미 알고 있는 것을 유용하게 사용할 수 있도록 도와줄 것이다”
- AI의 선구자인 앨런 튜링(Alan Turing)은 그의 기념비적인 논문 “Computing Machinery and Intelligence”에서 ‘러브레이스의 반론(Lady Lovelace’s objection)’으로 이 논평을 인용했다.
- 튜링은 에이다 러브레이스의 말을 인용했지만 범용 컴퓨터가 학습과 창의력을 가질 수 있는지에 대해 가능한 일이라고 결론을 냈다.
- 머신 러닝은 이런 질문에서 시작된다.
- 우리가 어떤 것을 작동시키기 위해 ‘어떻게 명령할지 알고 있는 것’ 이상을 컴퓨터가 처리하는 것이 가능한가?
- 특정 작업을 수행하는 법을 스스로 학습할 수 있는가?
- 컴퓨터가 우리를 놀라게 할 수 있을까?
- 프로그래머가 직접 만든 데이터 처리 규칙 대신 컴퓨터가 데이터를 보고 자동으로 이런 규칙을 학습할 수 있을까?
- 이 질문은 새로운 프로그래밍 패러다임의 장을 열었다. 전통적인 프로그래밍인 심볼릭 AI의 패러다임에서는 규칙과 이 규칙에 따라 처리될 데이터를 입력하면 해답이 출력된다.
- 머신 러닝에서는 데이터와 이 데이터로부터 기대되는 해답을 입력하면 규칙이 출력된다. 이 규칙을 새로운 데이터에 적용하여 창의적인 답을 만들 수 있다.
https://drive.google.com/uc?id=1RP1aDfig7CYqhPsu-K7M1qx17tYuWhpr
- 머신 러닝 시스템은 명시적으로 프로그램 되는 것이 아니라 훈련(training) 된다.
- 작업과 관련 있는 많은 샘플을 제공하면 이 데이터에서 통계적 구조를 찾아 그 작업을 자동화하기 위한 규칙을 만들어낸다.
- 머신 러닝은 1990년대 들어서야 각광을 받기 시작했지만, 고성능 하드웨어와 대량의 데이터셋이 가능해지면서 AI에서 가장 인기 있고 성공적인 분야가 되었다.
- 머신 러닝은 수리 통계와 밀접하게 관련되어 있지만 통계와 다른 점이 몇 가지 있다.
- 먼저 머신 러닝은 통계와 달리 보통 대량의 복잡한 데이터셋을 다루기 때문에 베이지안 분석(Bayesian analysis) 같은 전통적인 통계 분석 방법은 현실적으로 적용하기 어렵다.
- 이런 이유로 머신 러닝, 특히 딥러닝은 수학적 이론이 비교적 부족하고 엔지니어링 지향적이다.
- 이런 실천적인 접근 방식 때문에 이론보다 경험을 바탕으로 아이디어가 증명되는 경우가 많다.
데이터에서 표현을 학습하기
- 머신 러닝은 샘플과 기댓값이 주어졌을 때 데이터 처리 작업을 위한 실행 규칙을 찾는 것이다. 머신 러닝을 하기 위해서는 세 가지가 필요하다.
- 입력 데이터 포인트 –음성 파일, 이미지 파일 등
- 기대 출력 –강아지, 고양이 등
- 알고리즘의 성능을 측정하는 방법 –알고리즘의 현재 출력과 기대 출력 간의 차이를 결정하기 위해 필요. 측정 값은 알고리즘의 작동 방식을 교정하기 위한 신호로 다시 피드백되는데, 이런 수정 단계를 학습(learning)이라고 한다.
- 머신 러닝 모델은 입력 데이터를 의미 있는 출력으로 변환한다. 이것이 알고 있는 입력과 출력의 샘플로부터 학습하는 과정이다. 그렇기 때문에 머신 러닝과 딥러닝의 핵심 문제는 의미있는 데이터로의 변환이다.
- 다시 말해 입력 데이터를 기반으로 기대 출력에 가깝게 만드는 유용한 표현(representation)을 학습하는 것이다.
- 여기서 표현이란 데이터를 인코딩(encoding)하거나 묘사하기 위해 데이터를 바라보는 다른 방법이다. 예컨대 컬러 이미지는 RGB, HSV 포맷으로 인코딩될 수 있는데, 이들은 같은 데이터의 다른 표현이다.
- 어떤 표현으로는 해결하기 힘든 문제가 다른 표현으로는 쉽게 해결될 수 있다. 예컨대 이미지에서 빨간색 픽셀을 선택하는 것은 RGB 포맷이 쉽고, 이미지의 채도를 낮추는 것은 HSV 포맷이 더 쉽다.