"인간처럼 학습하고 추론할 수 있는 컴퓨터 시스템을 만드는 기술" 실직적인 역사는 80년정도 되었으며, 사실상 전자식 컴퓨터의 역사와 발을 맞추어 왔다고 생각해도 별 문제는 없을것 같다.
컴퓨팅 성능의 한계, 전문가 시스템 붐의 거품 붕괴라는 이유로 두번의 겨울을 겪었지만, 98년 LeNet-5, 2012년 ImageNet 등 합성곱 신경망을 이용한 인공신경망 기술의 발전과 실증으로 다시한번 관심을 받게 되었으며 2016년 알파고의 등장으로 크게 유행하게 되었다. 긴 겨울을 겪었던 이전 시대와 달리, 컴퓨팅 성능의 향상과 혁신적 알고리즘의 개발로 인해서 계속해서 새로운 성과가 발표되고, 적용되고 있어 현재로써는 미래가 낙관적이다. 하지만 지금 우리가 보고있고, 경헙하는 인공지능은 인간의 활동을 보조하는 약 인공지능(Weak AI)을 말하고 영화속에서나 나올법한 (ex. 울트론) 일반 인공지능(Artificial General Intelligence) 혹은 강인공지능(Strong AI)의 시대는 아직 오지 않았다. 그저 점점 더 긍정적인 방향으로 나아가고 있을 뿐이다.
머신러닝이란 인공지능기술의 한 분야다. 규칙을 하나하나 사람이 정하지 않아도, 주어진 데이터에서 규칙을 "학습"하는 알고리즘을 연구하는 것을 의미한다. 수학, 특히 통계학과 관련이 깊지만 최근에는 특히 딥러닝 분야의 폭발적인 성장으로 인해 경험(정확한 수식의 계산보다는 직관의 의한 개발 경험의 조합..을 이야기할까?)을 바탕으로 성장하고 있다고 한다. 파이썬의 점유율이 높다. 사이킷런이 대표적인 파이썬 머신러닝 라이브러리다.
딥러닝이란 머신러닝분야중, 인공신경망을 기반으로한 방법들을 이른다. 텐서플로우, 파이토치 등 사용하기 쉬운 라이브러리와 프레임 워크들이 오픈소스로 많이 출시되어 있다. 6,7년전 회사에서 Image Matting 에 대해 개발을 할때만 해도 딥러닝을 통한 이미지 처리가 배우기 어렵고 굉장히 난해하다고 생각해서 전통적인 이미지 처리 방식을 이용했었는데, 요즘은 "이미지 처리 = 딥러닝" 으로 공식화가 된것 같다. 또 관련 지식을 얻거나 교육을 받는 것도 일상화가 되어있어 이제는 머신러닝, 딥러닝을 어느정도 알지 못하면 어디가서 개발자라고 말하기 부끄러울 정도!
지도 학습은 입력(데이터)와 타깃(정답)으로 이루어진 훈련데이터 세트가 필요함. 입력으로 사용된 데이터의 각 항들을 특성이라고 한다. (ex. 무게, 길이 등..) "정답을 맞추는 것"이 목표다. 이전 장에서 K-최근접 모델처럼, 데이터를 fit하고 특정 알고리즘을 사용하여 접수를 내어 정답을 판단하는 것이 일반적인 방식인듯
비지도 학습은 타깃데이터가 없이 입력 데이터만을 이용한다. 정답을 맞출수는 없지만 데이터를 예측하거나 데이터를 변형할 때 사용한다. (책의 2장에서는 자세히 나와 있지 않음)
은 이책에서 다루지 않는다. 정답세트는 없고, 입력데이터 내에서 알고리즘이 행동한 결과로 얻은 보상을 통해 학습한다고 한다.
훈련세트 내용대로 평가를 하면, 학습된 데이터를 기반으로 정답을 판단하기 때문에 100%의 정답률이 나온다. 모델의 제대로된 성능을 평가하기 위해서는 학습되지 않은 데이터로 평가를 해야하는데... 이를 테스트 세트라고 하고, 별개의 데이터를 준비하거나 미리 준비된 훈련세트에서 일부를 떼어 테스트 세트로 활용한다. 각각 데이터의 하나의 튜플을 "샘플(sample)"이라고 보통 칭한다.
샘플이 골고루 섞여있지 않을경우 "샘플링 편향(sample bias)"이라고 부른다.