1장 한눈에 보는 머신러닝¶
1.1 머신러닝이란?¶
- 머신러닝은 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학(또는 예술)
1.2 왜 머신러닝을 사용하는가?¶
- 데이터 마이닝 : 머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견
○ 머신러닝이 뛰어난 분야
기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제 : 하나의 머신러닝 모델이 코드를 간단하게 만들고 전통적인 방법보다 더 잘 수행되도록 할 수 있음
전통적인 방식으로는 해결 방법이 없는 복잡한 문제 : 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾을 수 있습니다.
유동적인 환경 : 머신러닝 시스템은 새로운 데이터에 적응할 수 있습니다.
복잡한 문제와 대량의 데이터에서 통찰 얻기
1.3 애플리케이션 사례¶
생산 라인에서 제품 이미지를 분석해 자동으로 분류하기 : 일반적으로 합성곱 신경망(CNN)을 사용하여 수행
뇌를 스캔하여 종양 진단하기 : 시맨틱 분할 작업으로 CNN을 사용해 이미지의 각 픽셀을 분류
자동으로 뉴스 기사 분류하기 : 자연어 처리(NLP) 작업으로 구체적으로 텍스트 분류, 순환 신경망(RNN), CNN, 트랜스포머를 사용해 해결 가능
다양한 성능 지표를 기반으로 회사의 내년도 수익 예측하기 : 회귀 작업으로 선형 회귀, 다항 회귀, 회귀 SVM, 회귀 랜덤 포레스트, 인공 신경망과 같은 모델 사용해 해결 가능
신용 카드 부정 거리 감지하기 : 이상치 탐지 작업
고차원의 복잡한 데이터셋을 명확하고 의미 있는 그래프로 표현하기 : 데이터 시각화 작업으로 차원 축소 기법을 많이 사용
과거 구매 이력을 기반으로 고객이 관심을 가질 수 있는 상품 추천하기 : 추천 시스템으로 과거 구매 이력을 인공 신경망에 주입 후 다음에 구매할 가능성이 가장 높은 상품 출력
지능형 게임 봇 만들기 : 강화 학스(RL)으로 시간이 지나면 주어진 환경에서 보상이 최대가 되는 행동을 선택하는 에이전트를 훈련하는 머신러닝의 한 분야
1.4 머신러닝 시스템의 종류¶
- 사람의 감독하에 훈련하는 것인지 그렇지 않은 것인지에 따라(지도, 비지도, 준지도, 강화 학습)
1.4.1 지도 학습과 비지도 학습¶
지도 학습 : 훈련 데이터에 레이블이라는 원하는 답이 포함, 수치 예측, 분류가 전형적인 지도 학습 작업
- 대표적인 지도 학습 알고리즘 : k-최근접 이웃, 선형 회귀, 로지스틱 회귀, 서포트 벡터 머신(SVM), 결정 트리와 랜덤 포레스트, 신경망)
비지도 학습 : 훈련 데이터에 레이블이 미포함
- 군집 알고리즘 : k-평균, DBSCAN, 계층 군집 분석, 이상치 탐지, 원-클래스, 아이솔레이션 포레스트
- 시각화와 차원 축소 알고리즘 : 주성분 분석(PCA), 커널 PCA, 지역적 선형 임베딩, t-SNE
- 연관 규칙 학습 알고리즘 : 어프라이어리, 이클렛
준지도 학습 : 일부만 레이블이 있는 데이터를 다루는 것을 준지도 학습
강화 학습 : 학습하는 시스템 에이전트에서 환경을 관찰해서 행동을 실행하고 그 결과로 보산을 받아 가장 큰 보상을 얻기 위해 정책이라고 부르는 최상의 전략을 스스로 학습
1.4.2 배치 학습과 온라인 학습¶
○ 배치 학습
배치 학습 : 시스템이 점진적으로 학습할 수 없으며 가용한 데이터를 모두 사용해 학습시켜야 함, 학습한 것을 단지 적용만 하는 것으로 오프라인 학습이라고 합니다.
배치 학습은 새로운 데이터에 대해 학습하려면 새로운 버전의 데이터로 다시 훈령해야합니다.
배치 학습은 오랜 시간이 소요, 큰 비용, 많은 컴퓨팅 자원 필요, 데이터 양이 아주 많으면 배치 학습 알고리즘은 사용하는 게 불가능할 수도 있음
○ 온라인 학습
데이터를 순차적으로 한 개씩 또는 미니배치라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련
학습 단계가 빠르고 비용이 적게 드는 장점
새로운 데이터 샘플을 학습하면 학습이 끝난 데이터는 버림
나쁜 데이터 주입 시 시스템 성능이 점진적으로 감소
1.4.3 사례 기반 학습과 모델 기반 학습¶
새로운 샘플에서 잘 작동하는 모델이 중요
사례 기반 학습 : 시스템이 훈련 샘플을 기억함으로써 학습하는 것을
모델 기반 학습 : 샘플들의 모델을 만들어 예측에 사용하는 것을
1.5 머신러닝의 주요 도전 과제¶
충분하지 않은 양의 훈련 데이터
대표성 없는 훈련 데이터 : 일반화가 잘되려면 일반화하기 원하는 새로운 사례를 훈련 데이터가 잘 대표하는 것이 중요
- 샘플이 작으면 샘플링 잡음(우연에 의한 대표성 없는 데이터)이 생기고, 매우 큰 샘플은 샘플링 편향의 문제가 생길 수 있다.
낮은 품질의 데이터 : 데이터 정제가 중요
관련 없는 특성 : 성공적인 머신러닝 프로젝트의 핵심 요소는 좋은 특성을 찾는 것(특성 공학 : 특성 선택, 특성 추출, 새로운 데이터 속 새 특성 생성)
훈련 데이터 과대적합 : 모델이 훈련 데이터에 너무 잘 맞지만 일반성이 떨어진다는 뜻
- 과대적합 시 해결방안 : 파라미터 수가 적은 모델 선택, 훈련 데이터를 더 많이 생성, 훈련 데이터의 잡음을 줄임
훈련 데이터 과소적합 : 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 일어나는 것
- 해결 방법 : 모델 파라미터가 더 많은 강력한 모델 선택, 학습 알고리즘에 더 좋은 특성 제공, 모델의 제약을 줄임
1.6 테스트와 검증¶
모델이 새로운 샘플에 얼마나 잘 일반화될지 아는 방법으로 새로운 샘플에 실제 적용해 보는 것
홀드아웃 검증 : 훈련 세트에서 검증 세트 뺸 데이터에서 다양한 하이퍼파라미터 값을 가진 여러 모델을 훈련하고 검증 세트에서 가장 높은 성능을 내는 모델 선택, 검증 세트가 너무 작으면 정확도가 떨어짐
1.7 연습문제¶
머신러닝을 어떻게 정의할 수 있나요?
머신러닝이 도움을 줄 수 있는 문제 유형 네가지를 말해보세요.
레이블된 훈련 세트란 무엇인가요?
가장 널리 사용되는 지도 학습 작업 두 가지는 무엇인가요?
보편적인 비지도 학습 작업 네 가지는 무엇인가요?
사전 정보가 없는 여러 지형에서 로봇을 걸어가게 하려면 어떤 종류의 머신러닝 알고리즘을 사용할 수 있나요?
고객을 여러 그룹으로 분할하려면 어떤 알고리즘을 사용해야 하나요?
스팸 감지의 문제는 지도 학습과 비지도 학습 중 어떤 문제로 볼 수 있나요?
온라인 학습 시스템이 무엇인가요?
외부 메모리 학습이 무엇인가요?
예측을 하기 위해 유사도 측정에 의존하는 학습 알고리즘은 무엇인가요?
모델 파라미터와 학습 알고리즘의 하이퍼파라미터 사이에는 어떤 차이가 있나요?
모델 기반 알고리즘이 찾는 것은 무엇인가요? 성공을 위해 이 알고리즘이 사용하는 가장 일반적인 전략은 무엇인가요? 예측은 어떻게 만드나요?
머신러닝의 주요 도전 과제는 무엇인가요?
모델이 훈련 데이터에서의 성능은 좋지만 새로운 샘플에서의 일반화 성능이 나쁘다면 어떤 문제가 있는 건가요? 가능한 해결책 세 가지는 무엇인가요?
테스트 세트가 무엇이고 왜 사용해야 하나요?
검증 세트의 목적은 무엇인가요?
훈련-개발 세트가 무엇인가요? 언제 필요하고 어떻게 사용해야 하나요?
테스트 세트를 사용해 하이퍼파라미터를 튜닝하면 어떤 문제가 생기나요?
from IPython.core.display import display, HTML
display(HTML("<style>.container {width:80% !important;}</style>"))
C:\Users\20229069\AppData\Local\Temp\ipykernel_19848\529043151.py:1: DeprecationWarning: Importing display from IPython.core.display is deprecated since IPython 7.14, please import from IPython display from IPython.core.display import display, HTML
'Book report > 핸즈온 머신러닝' 카테고리의 다른 글
[핸즈온 머신러닝] Chapter 6. 결정 트리 (0) | 2024.04.01 |
---|---|
[핸즈온 머신러닝] Chapter 5. 서포트 벡터 머신 (0) | 2023.09.12 |
[핸즈온 머신러닝] Chapter 4. 모델 훈련 (0) | 2023.09.06 |
[핸즈온 머신러닝] Chapter 3. 분류 (0) | 2023.08.28 |
[핸즈온 머신러닝] Chapter 2. 머신러닝 프로젝트 처음부터 끝까지 (0) | 2023.08.04 |