[2주차_데이터분석] 개발일지 (영화 줄거리로 장르 분류하기-1 머신러닝 개념)

Coastby·2022년 7월 5일
0
post-custom-banner

[영화 줄거리로 장르 분류하기]
1. 머신러닝이란?
2. 데이터 전처리
3. 벡터화
4. 머신러닝
5. 모델 사용하기 및 불용어 제거

1. 머신러닝이란?

인공지능(Artificial Intelligence)은 '사람의 지능을 만들기 위한 시스템이나 프로그램'을 말한다. 머신러닝과 딥러닝은 약 인공지능에 포함되는 기술이고, 딥러닝은 머신러닝에 포함되는 기술이다.

○ 머신러닝은 스스로 규칙을 수정한다.

머신러닝과 딥러닝에서 말하는 학습은 데이터의 규칙을 컴퓨터 스스로 찾아내는 것을 말한다. 전통적인 프로그램은 사람이 규칙을 정하여 프로그래밍하고, 사람이 프로그램의 실행 결과를 보며 규칙을 조금씩 수정한다. 머신러닝은 사람이 만든 프로그램이기는 하지만 규칙을 스스로 찾아 수정한다. 여기서 말하는 규칙을 찾아 수정하는 과정을 학습 또는 훈련이라고 한다.

○ 머신러닝의 학습방식

머신러닝은 학습 방식에 따라 지도학습 (supervised learning), 비지도 학습(unsupervised learning), 강화학습(reinforcement learning)으로 분류한다. 머신러닝으로 다루는 많은 작업들이 지도 학습에 속한다.

지도학습

지도학습은 기본의 데이터를 통해 모델을 학습시키고 학습시킨 모델로 새로운 입력에 대한 예측을 할 수 있다.
모델을 훈련시키기 위해 사용하는 데이터를 훈련 데이터라고 한다. 훈련데이터는 입력타깃(target)으로 구성되어 있다. 입력은 모델이 풀어야할 문제, 타깃은 맞춰야 할 정답으로 보면 문제에 대한 답ㅇ르 주는 방법으로 모델을 훈련시킨다. 학습을 통해 만들어진 프로그램을 모델이라고 한다. 모델은 새로운 입력에 대한 예측을 만든다. 날씨 예측이나 스팸 분류 등에 사용된다.
지도 학습에서 가장 어려운 일은 훈련 데이터를 만드는 것이다. 잘못된 입력과 타깃을 포함시키거나 개수가 너무 적으면 안 된다.

비지도 학습

타깃이 없는 훈련 데이터를 사용하면 비지도 학습이라고 한다. 기업이 고객의 소비 성향에 따라 그룹을 지정하는 상황을 예로 들 수 있다. 그룹을 만들기 전까지는 어떤 그룹이 존재하는지 몇 개의 그룹이 만들어지는 지 알 수 없다.

강화학습

강화 학습은 머신러닝 알고리즘으로 에이전트를 훈련시킨다. 훈련된 에이전트는 특정 환경에 최적화된 행동을 수행하고 수행에 대한 '보상'과 '현재 상태'를 받는다. 에이전트의 목표는 '최대한 많은 보상을 받는 것'이다. 따라서 에이전트는 주어진 환경에서 많은 행동을 수행하여 학습된다. 대표적인 알고리즘으로는 Q-러닝, SARSA, 인공신경망을 사용한 DQN (Deep Q Network) 등이 있다. 강화 학습의 예로는 딥마인드(DeepMind), 알파고(AlphaGo)와 같은 게임이나 온라인 광고 등이 있다.

○ 규칙 (가중치, 절편)

머신러닝은 스스로 규칙을 찾는다고 했는데, 규칙이란 가중치와 절편을 말한다.

가중치와 절편이 1개인 간단한 식을 예로 들었지만 딥러닝은 훨씬 많은 개수(10만, 100만)의 가중치와 절편을 가진다. 머신러닝은 처음에는 가중치와 절편을 무작위로 설정했다가, 엄청난 속도로 연산을 하고 주어진 데이터를 기반으로 오차를 비교하면서 최적의 값을 찾아나간다. 이러한 과정을 최적화라고 한다.
최적화의 세부적인 원리는 선형대수와 관련된 지식이 있어야 이해를 할 수 있다. 그러나 최적화와 관련된 알고리즘이 이미 다 구현이 되어있어서 우리가 직접 최적화를 할 필요는 없다!

○ 모델은 머신러닝의 수학적 표현

앞의 수학식이 모델이다. 모델은 '훈련 데이터로 학습된 머신러닝 알고리증'을 말한다. 그리고 가중치와 절편을 합쳐 모델 파라미터 (model parameter)라고 부른다. 실제 실습에서 모델을 클래스로 구현할 것이므로 이를 통해 만든 객체를 모델이라고 이해하면 된다.

○ 최적화 알고리즘

손실 함수는 모델의 규칙을 수정하는 기준이 되는 함수이다. 손실 함수의 최솟값을 효율적으로 찾는 방법을 최적화 알고리즘이라고 한다.

○ 딥러닝?

딥러닝은 머신러닝 알고리즘 중 하나인 인공신경망(artificial neural network)으로 만든 것이다.

딥러닝은 보통 '인지'와 관련된 문제를 잘 해결한다. 예를 들어 딥러닝은 이미지, 음성, 텍스트에 관련된 분야의 문제를 잘 해결한다. 반면에 머신러닝은 암환자의 검진 데이터나 회사의 매출 데이터와 같은 정형화된 데이터에 대한 문제를 잘 해결한다.

핵심 패키지

👉Numpy

넘파이(Numpy)는 파이썬의 핵심 과학 패키지 중 하나이다. 많은 머신러닝과 딥러닝 패키지가 넘파이를 기반으로 구현되었고 넘파이 인터페이스를 계승하고 있기 때문에 넘파이는 꼭 익혀야하는 패키지 중 하나이다.

import numpy as np
print(np.__version__)

👉Matplotlib

맷플롯립 (Matplotlib)은 파이썬 과학 생태계 표준 그래프 패키지이다. 좋은 그래프 도구들이 많이 있지만 맷플롯립에서 제공하는 기능으로 대부분의 그래프를 그릴 수 있다. 이는 코랩에 포함되어 있으므로 바로 사용할 수 있다.

import matplotlib as mpl
import matplotlib.pyplot as plt

참고 : Do it!정직하게 코딩하며 배우는 딥러닝 입문 (도서)

profile
훈이야 화이팅
post-custom-banner

0개의 댓글