생활코딩의 머신러닝야학을 지난 해 여름 듣게 되었다. 평소 관심도 있고 여름 프로젝트 덕분에 AI에 관심을 가지게 되었다. 총 24편으로 이루어져 있는 생활코딩의 머신러닝1(유튜브 재생목록, 생활코딩 코스) 중 일자별로 내용을 정리해 둔 것을 다시 가져왔다.
- 오리엔테이션
인간의 판단을 기계에게 위임하기 위해 필요한 기계학습은 우리 생활에 많은 영향을 줄 수 있다. 생각보다 큰 문제를 다루는 머신러닝을 다루기에 앞서서 상상력이 중요함을 알게 하는 영상이었다.
- 머신러닝이란
통계의 기법을 활용해 쌓여진 데이터를 기반으로 기계에게 판단을 맡기는 것을 기계학습(머신러닝)이라고 하는데, 기계의 판단능력을 활용해 더 빠르고 정확한 결정을 하도록 하는 것을 기계학습이라고 할 수 있다는 설명이었다.
- 꿈
나의 문제를 머신러닝으로 해결한다면? 머신러닝의 예제로 ‘손톱을 뜯는 습관’을 고치는 사례를 들어 자신의 문제를 해결하기 위한 방법을 기계를 활용하여 해결하기 위해 고민해 봅니다. 의지는 환경을 바꾸고 습관은 의지를 바꾸는 힘이 있다는 설명이 인상적이다.
- 궁리하는 습관
스마트폰을 활용해 손톱을 깨물면 알려주는 기능을 구현하기 위해 손톱을 깨무는 예와 그렇지 않은 예를 기계학습시키면 나와 비슷한 문제를 해결한 사람들을 도울 수도 있다는 생각을 정리해 본다.
- Teachable machine
수학자나 프로그래머가 아니더라도 머신러닝을 경험할 수 있는 사이트인 Teachable Machine을 소개한다. 클래스에 연관된 사진을 모아 훈련을 시키면 하나의 모델이 완성되는데 이것을 내려받아 적용할 수 있다.
- 모델
머신러닝이란 기계를 통해 판단을 하는 힘을 가지도록 하는 것인데 이 과정을 ‘학습’이라고 하고, 그 결과 만들어진 것을 ‘모델’이라고 한다. 모델을 잘 만들면 좋은 추측을 할 수 있다.
- 머신러닝머신
머신러닝으로 할 수 있는 일을 살펴보기 전에 Teachable Machine 사이트에서 만든 모델을 머신러닝머신 사이트에 올려보면 확인할 수 있다. 예제로 손톱을 물어뜯는 예를 활용하여 카메라로 비춘 내 모습이 손톱을 물고 있으면 수치가 올라가고, 그렇지 않으면 내려가는데, 적절한 수치를 입력하는 것이 중요한 것 같다.
- 나도 이제 프로그래머
여러 가지 SW부품들을 응용한다는 의미는 ‘애플리케이션’, 복잡하고 반복적인 일을 기계에게 맡기면 실수할 일이 적듯이 기계가 할 일을 순서대로 실행하도록 결합한 것을 ‘프로그램’이라고 한다.
- 모르면 마법, 알면 기술
우리는 인터넷으로 사물을 제어한다는 의미인 ‘사물인터넷’을 머신러닝에 활용하여 사람이 일일히 명령하지 않아도 정해진 규칙에 맞게 스스로 동작하게 하는 환경에 놓여 있다. 레모네이드 가게의 예시처럼 주변에서 머신러닝으로 해결할 수 있을 것 같은 문제들을 발견하고 다른 학습자와 공유해 본다. 아이디어를 찾기만 하면 그 다음부터는 자연스럽게 노력하게 되어 있다.
- 교양의 끝
머신러닝을 교양으로만 이해하고자 하는 학습자는 10번 강의에서 멈추고, 그렇지 않은 학습자들은 그 다음으로 넘어가도록 안내한다.
- 직업의 시작
현실을 데이터화 할 수 있다면 복잡한 현실 속에서 발견하기 어려운 통찰을 단순한 데이터로 찾아낼 수 있다. 이를 다루는 일을 ‘데이터 산업’이라고 하는데, 데이터 과학(science)은 데이터를 만들고 만들어진 데이터를 이용하는 일이며, 데이터 공학(engineering)은 데이터를 다루는 도구를 만들고, 도구를 관리하는 일을 뜻한다.
- 표
표는 데이터들의 모임으로 data set이라고도 부른다. 가로의 각각의 정보를 다루는 행(row)는 개체, 관측치, 레코드 등으로 부르고, 세로의 열(column)은 특성, 속성, 변수라고 부른다.
- 독립변수와 종속변수
변할 수 있는 값을 변수라고 하고, 변수들 중 원인이 되는 열을 독립변수, 결과에 해당하는 열을 종속변수라고 한다. 한쪽이 바뀔 때 다른 쪽도 바뀌는 관계를 상관관계라고 하고, 독립-종속변수로 나타낼 수 있는 관계를 인과관계라고 한다. 인과관계는 상관관계에 포함되는 관계이다. 이들 관계를 잘 정의하는 것이 데이터 과학의 첫 걸음이다.
- 심리전
머신러닝의 여러 기능들을 본격적으로 살펴보기 전에, 더이상 살펴볼 수 없는 지루함이 몰려온다면 수업을 마쳐도 된다는 설명이 있었다.
- 머신러닝의 분류
정답이 있는 문제를 해결하려는 학습을 지도학습, 무언가에 대한 관찰을 통해 새로운 의미나 관계를 밝혀내는 것을 비지도학습, 더 좋은 보상을 받기 위해 수련하는 것을 반복하는 학습방법을 강화학습이라고 한다.
- 지도학습
과거의 데이터로부터 학습해서 결과를 예측하는데에 주로 사용되는 것을 지도학습이라고 한다. 레모네이드 가게 예시에서 ‘온도(독립변수)*2=판매량(종속변수)’과 같은 모델(공식)을 만들어 내는 것을 예시로 들고 있다.
- 회귀(regression)
예측하고 싶은 결과가 숫자일 경우에 회귀를 이용한다. (레모네이드 가게 예시)
- 분류(classification)
추측하고 싶은 결과가 이름, 문자라면 분류로 해결이 가능한다. (손톱 물어뜯는 모델 예시)
- 군집화
군집화(clustering)는 비슷한 것들을 찾아 그룹을 만드는 일이다. 머신러닝을 이용하면 대량의 데이터를 유사한 속성을 가진 관측치(행)끼리 분류하여 지정된 만큼의 클러스터를 자동으로 생성해 준다.
- 연관규칙학습
서로 연관된 특징을 찾아내어 특성(열)을 그룹핑 해 주는 것으로, 일명 장바구니 분석이라고 불린다. 역시 머신러닝을 이용해 쇼핑, 음악, 영화, 검색어 등을 추천해 주는 시스템이 연관규칙학습을 활용한 예시이다.
- 비지도학습 정리
과거의 원인과 결과를 바탕으로 앞으로의 원인의 결과를 예측하는 것이 지도학습이라면 비지도학습은 미지의 세계를 파악하듯 데이터들의 성격을 파악하는 것이 중요하여 독립변수와 종속변수를 지정할 필요가 없다. 결국 데이터를 정리정돈하는 과정에서 데이터의 성격을 파악하는 것이 비지도학습의 중요한 목적이다.
- 강화학습
지도학습이 배움을 통해 실력을 키우는 것이라면 강화학습은 일단 해 보고 실력을 키워가는 형태의 학습이다. 게임처럼 더 많은 보상을 받을 수 있는 정책을 만드는 것이며, 자율주행자동차, 알파고의 사례에서 볼 수 있는 학습 방법이다.
- 머신러닝지도
자료의 지도를 활용하면 어느 정도 머신러닝을 어떻게 적용할 지를 판단할 수 있는데, 다양한 판단의 경험을 통해 머릿속에 지도를 그린다면 중급자의 길로 나아갈 수 있지 않을까라는 생각을 알려준다.
- 수업을 마치며
머신러닝이라는 부품을 결합하면 더욱 쓸모있는 완제품을 만들 수 있는 준비가 됩니다. 필요한 지식이 있을 때 이를 바탕으로 더욱 발전하는 계기가 되었으면 좋겠다는 이고잉님의 설명이 있었다.
머신러닝1 수업을 통해 기계학습의 기초를 알고 다양한 분야에 적용할 수 있는 아이디어를 떠올리게 되었다. 당장에 구현은 어렵겠지만, 실제 구현된 사례를 보고 어떻게 만들어졌구나 하는 정도의 직관은 가질 수 있을 것 같다. 엔트리처럼 간단하게나마 구현할 수 있는 도구들을 가지고 학생들을 어떻게 지도할 수 있는지 조금 더 찾아보아야겠다.
댓글