머신러닝이란?
1. 머신러닝의 시대
- 알고리즘: 어떠한 문제를 해결하기 위한 일련의 절차나 방법
- 머신러닝: 기계가 패턴을 학습하여 자동화하는 알고리즘
ex) 유튜브: 개인이 유튜브 영상을 보는 패턴에 대하여 학습하는 프로그램(머신러닝)을 만든 다음 그 패턴(알고리즘)에 맞게 다음 영상을 계속 추천
2. 머신러닝의 사례
- 인터넷 쇼핑몰 구매 추천
- 번역
- 자율주행차
- 챗봇
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): 기존에 모여 있던 데이터에 대해 따로 분류 기준을 주지 않고 모델이 스스로 분류 기준을 찾아 집단을 모으는 기법
머신러닝 연대기
1. 데이터 시대의 시작: 제 2차 세계대전과 컴퓨터의 출현
제 2차 세계대전 중 연합군은 독일군의 암호 해석 방법을 연구 > 앨런 튜링이 현재의 컴퓨터와 유사한 형태의 기계장치를 만듦
2. 기술의 전이: 비즈니스를 위한 기술
제 2차 세계대전이 끝나고 전쟁에서 사용되었던 다양한 기술들이 민간으로 이전됨
은행은 고객들의 정보를 수기로 정리하여 관리했지만 데이터가 늘어남에 따라 이를 처리하는데 어려움이 있음
> 컴퓨터를 도입하여 은행 거래 처리 정보를 데이터로 저장하기 시작(전자정보처리시스템 or 거래처리시스템)
1960년대 들어서면서 정보시스템들이 깆업을 중심으로 더욱더 확산
> 경영정보시스템을 도입하여 거래정보 외에도 직원들의 월급부터 고객의 개인정보까지 처리
> 스프레드시트 프로그램이 보급되어 복잡한 수식을 처리
1980년대 개인용컴퓨터가 서서히 보급되며 기업 업무에 컴퓨터 적극활용
> 데이터를 활용한 간단한 형태의 인공지능시스템이나 의사결정지원시스템 도입
3. 정보화 혁명의 시작: 데이터의 확장
1989년 월드와이드웹 www개발 이후 인터넷상에서 많은 시스템 개발
> 이전에는 직원들을 위해 개발되었다면 이제 전 세계 고객들이 시스템을 통해 서비스를 이용
정보화 혁명은 단순히 데이터를 저장하는 것을 넘어 기업이 일하는 방식을 바꾸는데 일조
사업 프로세스를 정보화 히스템에 결합하여 업무효율을 높이는 시도를 지속
4. 모바일 시대의 시작: 데이터의 폭발
2007년 애플의 아이폰 출시로 본격적인 모바일 시대가 열림
> 기업들이 개인에게서 생성되는 다양한 데이터를 수집하며 빠르게 성장
5. 머신러닝 시대의 도래: 데이터의 관리 및 학습
빅데이터를 다루기 위한 도구들이 출현
> 구글의 하둡은 병렬처리 방식으로 서버 비용을 획기적으로 절감
> 방대한 빅데이터를 클라우드에 저장
사물인터넷(Internet of Things, IOT)의 출현
인간 지식 노동의 자동화
머신러닝 환경 구축하기
1. 파이선으로 머신러닝 환경을 구축하는 이유
- 스크립트 언어: 파이썬은 컴파일러를 쓰지 않는 스크립트 언어로, 수정이 쉽고 간단하며 사용자와 지속적인 인터렉션을 할 수 있음
- 쉬운 언어: 문법 자체가 간단하고 배우기 쉬움
- 머신러닝과 딥러닝의 표준 언어: 머신러닝과 딥러닝을 지원하는 프레임워크들은 대부분 파이썬을 지원함
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
참고서적: 데이터 과학을 위한 파이썬 머신러닝
'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 |