본문 바로가기

Study/AI

머신러닝의 기초

728x90

머신러닝이란?

1. 머신러닝의 시대

  • 알고리즘: 어떠한 문제를 해결하기 위한 일련의 절차나 방법
  • 머신러닝: 기계가 패턴을 학습하여 자동화하는 알고리즘

 

ex) 유튜브: 개인이 유튜브 영상을 보는 패턴에 대하여 학습하는 프로그램(머신러닝)을 만든 다음 그 패턴(알고리즘)에 맞게 다음 영상을 계속 추천

 

2. 머신러닝의 사례

  1. 인터넷 쇼핑몰 구매 추천
  2. 번역
  3. 자율주행차
  4. 챗봇

 

3. 머신러닝의 키워드

딥러닝 ⊂ 머신러닝  ⊂ 인공지능

  • 인공지능: 컴퓨터가 학습하고 생각하여 스스로 판단할 수 있도록 만드는 기술

1956년 다트머스 컨퍼런스에서 '인공지능'이라는 표현을 처음 사용한 이후 본격적인 학문응로서 발전하기 시작

이때 인공지능에 대한 다양한 시도가 있었는데 여러 시도 중 하나가 머신러닝이다.

  • 머신러닝: 데이터를 컴퓨터에 학습시켜 그 패턴과 규칙을 컴퓨터가 스스로 학습하도록 만드는 기술

이전에는 많은 지식을 직접 데이터베이스화 한 후 이 지식들을 컴퓨터가 처리하도록 프로그램을 만듦

머신러닝은 데이터를 분류할 수 있는 수학적 모델을 프로그래밍하여 데이터만 입력하면 이미 만들어진 규칙으로 적용되어 여러 문제를 풀 수 있도록 시도한 것

  • 딥러닝: 머신러닝 기법 중 신경망(neural network)을 기반으로 사물이나 데이터를 군집화하거나 분류하는데 사용하는 기술

머신러닝의 학습 프로세스와 종류

1. 머신러닝의 학습 프로세스

머신러닝의 기본 모형

가지고 있는  데이터 x를 우리가 학습하여 생성한 함수 f()에 넣으면 그 결과로 어떤 문제에 대한 예측치y를 생성

머신러닝은 우리가 찾고자하는 f()를 제공

 

예를들어 위와 같은 데이터가 있다고 가정했을 때 이를 그래프로 표현하면

 

위와 같이 x축은 키, y축은 몸무게로 나타낼 수 있다. 그래프에서 보듯 키와 몸무게가 어느 정도 상관관계가 있다는 예상할 수 있는데 즉, 키를 알면 완벽하지는 않지만 어느 정도 몸무게를 예측하는 것이 가능해진다.

이러한 키와 몸무게 간의 상관관계를 1차 방정식으로 표현할 수 있다.

모델: 상관관계를 식으로 표현

위와 같은 식을 "모델"이라고 한다,

2. 머신러닝의 종류

  • 지도학습(supervised learning): 문제와 답을 함께 학습
  • 비지도학습(unsupervised learning): 조력자의 도움 없이 컴퓨터 스스로 학습. 컴퓨터가 훈련 데이터를 이용하여 데이터들 간의 규칙성을 찾아냄
머신러닝 대분류 머신러닝 종류 설명
지도학습 회귀 연속형 값인 y의 특징을 찾아 데이터x를 사용하여 y값을 예측하는 기법
분류 이산형 값인 y의 특징을 찾아 데이터x를 사용하여 y값을 예측하는 기법
비지도학습 군집 y값이 주어지지 않고, 데이터 특징이 유사한 값들의 모임을 군집으로
표현하는 기법
  • 강화학습(reinforcement learning): 컴퓨터가 세상에 존재하는 규칙을 스스로 시뮬레이션하면서 게임처럼 규칙을 학습
  • 생성(generation): 세상에 존재하는 다양한 규칙들을 학습한 모델이 세상에 존재하지 않ㅇ는 새로운 무엇인가를 창조해냄

 

  • 회귀(regression): 독립변수 x와 종속변수 y의 관계를 함수식으로 설명, 추세선을 긋는 것

회귀 예제: 키와 몸무게 데이터

 

  • 분류(classification): 데이터를 어떤 기준에 따라 나눔
  • 이진분류(binary classification): 2개의 값 중 1개를 분류
  • 다중분류(multi-class classification): 3개 이상 분류 실행

분류 예제: 성별, 키, 몸무게 데이터

 

  • 군집(clustering): 기존에 모여 있던 데이터에 대해 따로 분류 기준을 주지 않고 모델이 스스로 분류 기준을 찾아 집단을 모으는 기법

군집 예제: 키, 몸무게 데이터 이용 3개의 농구팀 만들기


머신러닝 연대기

1. 데이터 시대의 시작: 제 2차 세계대전과 컴퓨터의 출현

제 2차 세계대전 중 연합군은 독일군의 암호 해석 방법을 연구 > 앨런 튜링이 현재의 컴퓨터와 유사한 형태의 기계장치를 만듦

 

2. 기술의 전이: 비즈니스를 위한 기술

제 2차 세계대전이 끝나고 전쟁에서 사용되었던 다양한 기술들이 민간으로 이전됨

 

은행은 고객들의 정보를 수기로 정리하여 관리했지만 데이터가 늘어남에 따라 이를 처리하는데 어려움이 있음

> 컴퓨터를 도입하여 은행 거래 처리 정보를 데이터로 저장하기 시작(전자정보처리시스템 or 거래처리시스템)

 

1960년대 들어서면서 정보시스템들이 깆업을 중심으로 더욱더 확산

> 경영정보시스템을 도입하여 거래정보 외에도 직원들의 월급부터 고객의 개인정보까지 처리

> 스프레드시트 프로그램이 보급되어 복잡한 수식을 처리

 

1980년대 개인용컴퓨터가 서서히 보급되며 기업 업무에 컴퓨터 적극활용

> 데이터를 활용한 간단한 형태의 인공지능시스템이나 의사결정지원시스템 도입

 

3. 정보화 혁명의 시작: 데이터의 확장

1989년 월드와이드웹 www개발 이후 인터넷상에서 많은 시스템 개발

> 이전에는 직원들을 위해 개발되었다면 이제 전 세계 고객들이 시스템을 통해 서비스를 이용

 

정보화 혁명은 단순히 데이터를 저장하는 것을 넘어 기업이 일하는 방식을 바꾸는데 일조

사업 프로세스를 정보화 히스템에 결합하여 업무효율을 높이는 시도를 지속

 

4. 모바일 시대의 시작: 데이터의 폭발

2007년 애플의 아이폰 출시로 본격적인 모바일 시대가 열림

> 기업들이 개인에게서 생성되는 다양한 데이터를 수집하며 빠르게 성장

 

5. 머신러닝 시대의 도래: 데이터의 관리 및 학습

빅데이터를 다루기 위한 도구들이 출현

> 구글의 하둡은 병렬처리 방식으로 서버 비용을 획기적으로 절감

> 방대한 빅데이터를 클라우드에 저장

 

사물인터넷(Internet of Things, IOT)의 출현

인간 지식 노동의 자동화


머신러닝 환경 구축하기

1. 파이선으로 머신러닝 환경을 구축하는 이유

  1. 스크립트 언어: 파이썬은 컴파일러를 쓰지 않는 스크립트 언어로, 수정이 쉽고 간단하며 사용자와 지속적인 인터렉션을 할 수 있음
  2. 쉬운 언어: 문법 자체가 간단하고 배우기 쉬움
  3. 머신러닝과 딥러닝의 표준 언어: 머신러닝과 딥러닝을 지원하는 프레임워크들은 대부분 파이썬을 지원함

 

2. 파이썬 머신러닝 환경 구축하기

도구 종류 설명 사용 도구
파이썬 인터프리터 파이썬 코드를 해석하고 실행시키기 위한 실행 프로그램 아나콘다(Anaconda)
코드 편집기 파이썬 코드를 수정할 때 사용하는 프로그램 주피터(Jupyter), VS코드(VSCode)
통계 분석 및
전처리 도구
데이터를 로드하고 전처리하기 위한 도구들 넘파이(NumPy). 판다스(Pandas),
사이파이(SciPy)
시각화 도구 데이터의 상태를 파악하기 위해 시각화를 지원하는 도구 맷플롯립(Matplotlib),
시본(Seaborn), 플롯리(Plotly)
머신러닝 프레임워크 실제 머신러닝 모델을 생성하고 데이터에 적용할 수 있도록
도와주는 도구
사이킷런(Scikit-learn)

1. 파이썬 인터프리터

  • 파이썬을 실행하는 파이썬 해석기 프로그램
  • 파이썬 재단에서 배포하는 가장 기본적인 인터프리터
  • 최근에는 과학 계산용 파이썬 인터프리터를 표방한 아나콘다(Anaconda)버전이 많이 사용됨

2. 코드 편집기

  • 노트패드처럼 코드를 문서처럼 취급하여 수정
  • 통합개발환경(Integrated Development Environment, IDE)은 코드 저장, 코드 전송, 코드 배포 등 개발의 전 과정을 지원하는 도구
  • 일반적으로 인터랙티브 셸(interactive shell)을 사용하여 코드를 수정, 데이터 변화를 관찰하며 코딩
  • 주피터(Jupyter): 데이터 분석에 있어 가장 많이 쓰이고 사실상 표준으로 사용되는 코드 편집기
  • VS코드(VSCode): 마이크로소프트에서 개발

 

3. 통계 분석 및 전처리 도구

  • 넘파이(NumPy): 선형대수의 계산식을 파이썬으로 구현할 수 있도록 도와주는 라이브러리
  • 판다스(Pandas): 파이썬 데이터 처리를 위한 사실상의 표준 라이브러리
    • 데이터를 전처리하거나 통계정보, 또는 엑셀의 피봇 테이블과 같은 기능이 필요할 때 사용
    • 넘파이 기반으로 개발
  • 사이파이(SciPy): 파이썬에서 통계나 미분 연산등 공업 수학 레벨에서 사용하는 거의 모든 수학 연산을 지원, 넘파이 기반 개발

 

4. 시각화 도구

  • 맷플롯립(Matplotlib): 대중적으로 사용되어 왔으며 많은 파이썬 라이브러리의 근간이 됨
  • 시본(Seaborn): 그래프를 생성하는 라이브러리, 모든 기능은 맷플롯립을 기반으로 제공되며 맷플롯립과 상호 호환됨
  • 플롯리(Plotly): 사용자의 마우스에 반응하는 인터랙션 플로팅 기능을 제공해 필요에 따라 상세히 데이터를 볼 수 있음

 

5. 머신러닝 프레임워크

  • 실제 머신러닝 모델을 생성하고 데이터에 적용할 수 있도록 도와주는 도구
  • 사이키런이 대표적인 머신러닝 프레임워크로 사실상 표준으로 사용됨
  • 딥러닝에서 사용되는 신경망을 제외하고 기본적인 통계기반 라이브러리를 매우 다양하게 제공

연습문제

1. 기계가 패턴을 학습하여 자동화하는 알고리즘을 무엇이라고 하는가?

①머신러닝 ②인공지능 ③데이터과학 ④빅데이터

답: 1

 

2. 사물이나 데이터를 군집화하거나 분류하는 데 사용하는 기술로 많은 머신러닝 기법 중 '신경망(neural network)'을 기반으로 한 기술을 무엇이라고 하는가?

①인공신경망 ②딥러닝 ③데이터 과학 ④인공지능

답: 2

 

3. 문제와 답을 함께 학습함으로써 미지의 문제에 대한 올바른 답을 예측하는 학습을 무엇이라고 하는가?

①지도학습 ②추천학습 ③강화학습 ④비지도학습

답: 1

 

4. 비지도학습의 종류로 기존에 모여 있던 데이터에 대해 따로 분류 기준을 주지 않고 모델이 스스로 분류 기준을 찾아 집단을 모으는 기법을 무엇이라고 하는가?

①분류 ②회귀 ③검색 ④군집

답: 4

 

5. 다음 중 머신러닝 시대의 도래와 관련된 설명으로 맞지 않는 것은 무엇인가?

①앨런 튜링은 매일 바뀌는 암호의 암호키를 빠른 시간 내에 찾아내기 위해 초기 수준의 컴퓨터를 개발하여 사용하였다.

②은행에서 컴퓨터를 도입하면서 은행 거래 처리 정보를 데이톨 저장하기 사작하였다.

③월드와이드웹(World Wide Web)이라고 부르는 WWW가 개발된 이후, 많은 시스템들이 인터넷상에서 개발되었다.

④구글의 하둡(Hadoop)은 대용량 처리에 있어 직렬처리 방식을 적용하여 서버에 들어가는 비용을 획기적으로 절감하였다.

답: 4

 

6. 다음 중 통계 분석 및 전처리 도구가 아닌 것은?

①맷플롯립 ②사이파이 ③판다스 ④넘파이

답: 1

 

참고서적: 데이터 과학을 위한 파이썬 머신러닝

728x90

'Study > AI' 카테고리의 다른 글

Titanic Survival Prediction  (1) 2024.04.10
넘파이(Numpy) - 비교 연산과 데이터 추출  (0) 2023.04.09
넘파이(Numpy) - 배열 연산  (0) 2023.04.09
넘파이(Numpy) - 배열 객체 다루기  (2) 2023.04.09
데이터의 이해  (0) 2023.04.02