본문 바로가기

Study with me

[Machine Learning #1] What is Machine Learning?

* 이 글은 Andrew Ng 교수님의 Coursera 무료 온라인 강의인 'Machine Learning' 강의를 정리하였습니다.

 

안녕하세요? 저는 강화학습 기반의 AI 의료 분야 연구를 하고자 하는 포스텍 학생입니다 :) 

기본적인 베이스 없이 연구에 참여하게 되면서 프로그래밍 실력은 올라갔지만, 기계학습에 대한 이론적인 지식이 부족해서 관련 논문을 이해하는 데 한계를 느꼈고, 

기초부터 단단히 다져가고 싶어서 Andrew Ng 교수님의 'Machine Learning'강의를 듣게 되었습니다. 

3주에 걸쳐 처음부터 끝까지 강의를 이수하였고, 다시 내용을 복습하면서 블로그에 글을 정리하고 있습니다. 

 

* 블로그에 올라오는 글은 강의 순서 그대로는 아닐 수 있으며, 같은 주차 내에서는 이해하기 쉬운 형태로 내용 구조를 정리한 부분도 있기 때문에 강의 설명 순서와 블로그 정리 순서가 약간 다를 수 있습니다.

따라서 꼭 https://www.coursera.org/ 에서 Andrew Ng 교수님의 강의를 들이시는 것을 추천 드리며, 제 정리 방식이 마음에 드신다면 한 주치 강의가 끝날 때마다 정리하시는 느낌으로 제 블로그에 와주시면 감사하겠습니다 :)

혹여나 잘못된 부분이 있다면 댓글이나 연락 언제든지 환영합니다!

 

1주차 - (1) : Machine Learning(기계학습)에 대한 소개 [Welcome + What is Machine Learning?]

1. Machine Learning(기계학습) 소개!

Introduction of ML

말 그대로 Machine, '기계'를 +  Learning, '학습' 시킨다는 의미입니다.

그런데 어떻게 학습을 시키냐면, 기계가 마치 인간의 뇌를 가지고 생각하는 것처럼 학습을 시켜서,

인간과 비슷한 일을 해내게끔 하는 인공지능의 분야라고 할 수 있습니다.

아직 멀었지만, 수많은 인공지능 연구자들이 우리와 같은 지능을 가진 기계를 만들기 위해 노력하고 있다고 합니다.

연구자들의 최선의 목표는 학습 알고리즘을 인간의 뇌를 흉내 내어 만들어 인간의 뇌와 비슷하게 학습하게 만드는 것입니다.

 

그렇다면 왜 기계학습이 오늘날 사용되고 있을까요?

기계학습은 인공지능 분야에서 파생되어 나갔고, 우리는 기계가 지능을 가져서 몇몇 간단한 일들을 스스로 해내길 원했습니다.

하지만 우리가 생각하는 간단한 일들* 말고도 인공지능 프로그램들이 할 수 있는 일이 생각보다 많았습니다.

그렇게 기계학습은 기계가 스스로 학습을 한다는 점에서 컴퓨터에 새로운 능력을 불어 넣어 주었고, 오늘날의 산업 분야에서 다양하게 쓰이고 있습니다. 

* 예를 들면 웹 검색, 스팸메일 필터링, 사진 태그 등..(음 사실 저는 이것도 간단해 보이진 않지만..)

 

2. 일상 생활에서의 기계학습

   - 인터넷 구글, Bing 웹 검색 엔진 -> 검색을 잘하기 위해 학습 알고리즘 사용

   - 페이스북, 애플 사진 속 친구들과 내 얼굴 인식

   - 이메일 스팸 분류 

 

3. Machine Learning(기계학습)의 정의

  1) Arthur Samuel의 정의 : 컴퓨터가 명시적 프로그램이 없어도 스스로 학습할 수 있는 능력을 연구하는 학문 분야

  2) Tom Mitchell의 정의 : 학습 과제(well-posed learning problem) 중심의 정의

프로그램이 일정 수준의 작업 성능(P: Performance)을 가지고 작업(T : Task)을 수행한다고 했을 때, 경험(E: Experience)이 증가함에 따라 작업(T)를 수행하는 성능(P)이 향상될 수 있습니다. 이 때 프로그램이 경험(E)로 부터 학습(Learn)을 했다고 표현합니다. 

      체커 게임에 적용해보면, 

      경험(E) : 같은 게임을 수만 번 반복하는 과정

      작업(T) : 체커 게임을 수행하는 행위

      작업 성능(P) : 프로그램이 다음 판을 새로운 상대로 했을 때 그 판을 이길 확률(Probability)

 

[Quiz]      

1. 스팸 메일을 구분하는 이메일 프로그램의 작업(T)와 작업 성능(P)는 어떻게 정의할 수 있을까요?

    ( 스팸메일 구분 프로그램 : 우리가 스팸/정상 메일을 구분하는 패턴을 보고 스팸 구분 및 제거 방법 학습)

- 경험(E) : 컴퓨터가 우리가 메일을 스팸/정상 메일로 분류하는 것을 잘 관찰하는 것

- 작업(T) : ?

- 작업 성능(P) : ? 

 

* 정답은 다음 글에 있습니다 :D