- 딥러닝 이론
- 1.1.1 인공지능
인공 지능은 1950년대에 초기 컴퓨터 과학 분야의 일부 선각자들이 “컴퓨터가 ‘생각’할 수 있는가?”라는 질문을 하면서 시작되었습니다. 이 질문의 답은 오늘날에도 여전히 찾고 있습니다. 이 분야에 대한 간결한 정의는 다음과 같습니다. 보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구 활동입니다. 이처럼 AI는 머신 러닝과 딥러닝을 포괄하는 종합적인 분야입니다. 또 학습 과정이 전혀 없는 다른 방법도 많이 포함하고 있습니다. 예를 들어 초기 체스 프로그램은 프로그래머가 만든 하드코딩된 규칙만 가지고 있었고 머신 러닝으로 인정받지 못했습니다. 아주 오랜 기간 동안 많은 전문가는 프로그래머들이 명시적인 규칙을 충분하게 많이 만들어 지식을 다루면 인간 수준의 인공 지능을 만들 수 있다고 믿었습니다. 이런 접근 방법을 심볼릭 AIsymbolic AI라고 하며 1950년대부터 1980년대까지 AI 분야의 지배적인 패러다임이었습니다. 1980년대 전문가 시스템expert system의 호황으로 그 인기가 절정에 다다랐습니다.
심볼릭 AI가 체스 게임처럼 잘 정의된 논리적인 문제를 푸는 데 적합하다는 것이 증명되었지만, 이미지 분류, 음성 인식, 언어 번역 같은 더 복잡하고 불분명한 문제를 해결하기 위한 명확한 규칙을 찾는 것은 아주 어려운 일입니다. 이런 심볼릭 AI를 대체하기 위한 새로운 방법이 등장했는데, 바로 머신 러닝입니다.
1.1.2 머신 러닝
영국 빅토리아 시대의 에이다 러브레이스Ada Lovelace, 1는 최초의 기계적 범용 컴퓨터인 해석 기관Analytical Engine을 발명한 찰스 배비지Charles Babbage의 친구이자 동료였습니다. 선견지명이 있어 시대를 많이 앞섰지만 1830년대와 1840년대부터 해석 기관이 범용 컴퓨터로 설계된 것은 아닙니다. 범용 컴퓨터란 개념이 아직 정의되지 않은 때였습니다. 단지 해석학mathematical analysis 분야의 계산을 자동화하기 위해 기계적인 연산을 사용하는 방법이었을 뿐입니다. 그래서 이름이 해석 기관입니다. 1843년 에이다 러브레이스는 이 발명에 대해 다음과 같이 언급했습니다. “해석 기관이 무언가를 새롭게 고안해 내는 것은 아닙니다. 우리가 어떤 것을 작동시키기 위해 어떻게 명령할지 알고 있다면 이 장치는 무엇이든 할 수 있습니다. …… 이런 능력은 우리가 이미 알고 있는 것을 유용하게 사용할 수 있도록 도와줄 것입니다.
AI 선구자인 앨런 튜링Alan Turing은 1950년에 튜링 테스트Turing test와 AI의 주요 개념을 소개한 그의 기념비적인 논문 “Computing Machinery and Intelligence”2에서 ‘러브레이스의 반론’Lady Lovelace’s objection, 3으로 이 논평을 인용했습니다. 튜링은 에이다 러브레이스의 말을 인용했지만 범용 컴퓨터가 학습과 창의력을 가질 수 있는지 숙고한 후 가능한 일이라고 결론을 냈습니다.
머신 러닝은 이런 질문에서부터 시작됩니다. “우리가 어떤 것을 작동시키기 위해 ‘어떻게 명령할지 알고 있는 것’ 이상을 컴퓨터가 처리하는 것이 가능한가? 그리고 특정 작업을 수행하는 법을 스스로 학습할 수 있는가? 컴퓨터가 우리를 놀라게 할 수 있을까? 프로그래머가 직접 만든 데이터 처리 규칙 대신 컴퓨터가 데이터를 보고 자동으로 이런 규칙을 학습할 수 있을까?”
이 질문은 새로운 프로그래밍 패러다임의 장을 열었습니다. 전통적인 프로그래밍인 심볼릭 AI의 패러다임에서는 규칙(프로그램)과 이 규칙에 따라 처리될 데이터를 입력하면 해답이 출력됩니다(그림 1-2 참고). 머신 러닝에서는 데이터와 이 데이터로부터 기대되는 해답을 입력하면 규칙이 출력됩니다. 이 규칙을 새로운 데이터에 적용하여 창의적인 답을 만들 수 있습니다.
030
그림 1-2 머신 러닝: 새로운 프로그래밍 패러다임
머신 러닝 시스템은 명시적으로 프로그램되는 것이 아니라 훈련training됩니다. 작업과 관련 있는 많은 샘플을 제공하면 이 데이터에서 통계적 구조를 찾아 그 작업을 자동화하기 위한 규칙을 만들어 냅니다. 예를 들어 여행 사진을 태깅하는 일을 자동화하고 싶다면, 사람이 이미 태그해 놓은 다수의 사진 샘플을 시스템에 제공해서 특정 사진에 태그를 연관시키기 위한 통계적 규칙을 학습할 수 있을 것입니다.
머신 러닝은 1990년대 들어와서야 각광을 받기 시작했지만, 고성능 하드웨어와 대량의 데이터셋이 가능해지면서 금방 AI에서 가장 인기 있고 성공적인 분야가 되었습니다. 머신 러닝은 수리 통계와 밀접하게 관련되어 있지만 통계와 다른 점이 몇 가지 있습니다. 먼저 머신 러닝은 통계와 달리 보통 대량의 복잡한 데이터셋(예를 들어 몇 만 개의 픽셀로 구성된 이미지가 수백만 개가 있는 데이터셋)을 다루기 때문에 베이지안 분석Bayesian analysis 같은 전통적인 통계 분석 방법은 현실적으로 적용하기 힘듭니다. 이런 이유 때문에 머신 러닝, 특히 딥러닝은 수학적 이론이 비교적 부족하고(어쩌면 아주 부족하고) 엔지니어링 지향적입니다. 이런 실천적인 접근 방식 때문에 이론보다는 경험을 바탕으로 아이디어가 증명되는 경우가 많습니다.4
1.1.3 데이터에서 표현을 학습하기
딥러닝을 정의하고 다른 머신 러닝 방식과의 차이점을 이해하기 위해 먼저 머신 러닝 알고리즘이 하는 일이 무엇인지 알아야 합니다. 머신 러닝은 샘플과 기댓값이 주어졌을 때 데이터 처리 작업을 위한 실행 규칙을 찾는 것입니다. 머신 러닝을 하기 위해서는 세 가지가 필요합니다.
입력 데이터 포인트: 예를 들어 주어진 문제가 음성 인식이라면, 이 데이터 포인트는 사람의 대화가 녹음된 사운드 파일입니다. 만약 이미지 태깅에 관한 작업이라면 데이터 포인트는 사진이 됩니다.
기대 출력: 음성 인식 작업에서는 사람이 사운드 파일을 듣고 옮긴 글입니다. 이미지 작업에서 기대하는 출력은 ‘강아지’, ‘고양이’ 등과 같은 태그입니다.
알고리즘의 성능을 측정하는 방법: 알고리즘의 현재 출력과 기대 출력 간의 차이를 결정하기 위해 필요합니다. 측정값은 알고리즘의 작동 방식을 교정하기 위한 신호로 다시 피드백됩니다. 이런 수정 단계를 학습learning이라고 말합니다.
머신 러닝 모델은 입력 데이터를 의미 있는 출력으로 변환합니다. 이것이 알고 있는 입력과 출력의 샘플로부터 학습하는 과정입니다. 그렇기 때문에 머신 러닝과 딥러닝의 핵심 문제는 의미 있는 데이터로의 변환입니다. 다시 말하면 입력 데이터를 기반으로 기대 출력에 가깝게 만드는 유용한 표현representation을 학습하는 것입니다. 여기에서 표현이란 무엇일까요? 핵심은 데이터를 인코딩encoding하거나 묘사하기 위해 데이터를 바라보는 다른 방법입니다. 예를 들어 컬러 이미지는 RGB 포맷(빨간색-녹색-파란색 )이나 HSV 포맷(색상-채도-명도)으로 인코딩될 수 있습니다. 이들은 같은 데이터의 두 가지 다른 표현입니다. 어떤 표현으로는 해결하기 힘든 문제가 다른 표현으로는 쉽게 해결될 수 있습니다. 예를 들어 ‘이미지에 있는 모든 빨간색 픽셀을 선택’하는 문제는 RGB 포맷에서는 쉽습니다. 반면에 ‘이미지의 채도를 낮추는’ 것은 HSV 포맷이 더 쉽습니다. 머신 러닝 모델은 입력 데이터에서 적절한 표현을 찾는 것입니다. 이런 데이터 변환은 분류 작업 같은 문제를 더 쉽게 해결할 수 있도록 만들어 줍니다.
## 자주 하는 실수
- 기본기능으로 때우려고함
## 큐
- 어차피 헷갈리니 자주보고쓰자
## 내가 모르는 것
- 딥러닝이론
## 일정
- 14:00 ~ 15:00 : 운동
- 15:00 ~ 16:00 : 운동
- 17:00 ~ 18:00 : 공부, 영상1업로드
- 18:00 ~ 19:00 : 공부, 영상2업로드
- 19:00 ~ 20:00 : 공부, 영상3업로드
- 20:00 ~ 21:00 : 공부
'공부기록' 카테고리의 다른 글
공부기록, 2021-11-08(ocjap 공부) (0) | 2021.11.08 |
---|---|
공부기록, 2021-10-29(자바용어) (0) | 2021.10.29 |
공부기록, 2021-10-25(자바특징2) (0) | 2021.10.25 |
공부기록, 2021-10-22(자바특징) (0) | 2021.10.22 |
공부기록, 2021-10-21(mfc 구조및순서) (0) | 2021.10.21 |