본문 바로가기

전체 글27

[핸즈온 머신러닝] 11장 심층 신경망 훈련하기 (11.1 ~ 11.3) 훈련 중 마주할 수 있는 문제들 그레이디언트 소실, 폭주 문제 데이터 불충분, 레이블 작업에 많은 비용 훈련이 극단적으로 느려짐 과대적합 1. 그레이디언트 소실과 폭주 문제 그레이디언트 소실 : 알고리즘이 하위층으로 진행될수록 그레이디언트가 점점 작아지는 경우 그레이디언트 폭주 : 그레이디언트가 점점 커져서 여러 층이 비정상적으로 큰 가중치로 갱신되는 경우 1) 글로럿과 He 초기화 각 층의 출력에 대한 분산이 입력과 같아야 함 역방향에서 층을 통과하기 전과 후의 그레이디언트 분산이 동일해야 함 keras.layers.Dense(10, activation="relu", kernel_initializer="he_normal") 2) 수렴하지 않는 활성화 함수 활성화 함수를 잘못 선택하면 그레이디언트의 소실.. 2022. 2. 18.
[핸즈온 머신러닝] 10장 케라스를 사용한 인공 신경망 소개 1. 생물학적 뉴런에서 인공 뉴런까지 3) 퍼셉트론 TLU 또는 LTU라고 불리는 조금 다른 형태의 인공 뉴런을 기반으로 함 TLU는 입력의 가중치 합을 계산 한 뒤 계산된 합에 계단 함수를 적용하여 결과를 출력 퍼셉트론에서 가장 널리 사용되는 계단 함수는 헤비사이드 계단 함수 퍼셉트론은 하나의 TLU로 구성되며 한 층에 있는 모든 뉴런이 이전 층의 모든 뉴런과 연결되어 있을 때 완전 연결 층 또는 밀집 층이라고 함 입력층은 모두 입력 뉴런으로 구성되며 편향 특성이 더해짐 잘못된 예측을 하는 모든 출력 뉴렁네 대해 올바른 예측을 만들 수 있도록 입력에 연결된 가중치를 강화시키면서 훈련됨 # 분꽃 데이터 사용 import numpy as np from sklearn.datasets import load_i.. 2022. 2. 14.
[핸즈온 머신러닝] 9장 비지도 학습 군집 : 비슷한 샘플을 클러스터로 모은다 이상치 탐지 : 정상 데이터가 어떻게 보이는지 학습 밀도 추정 : 데이터셋 생성 확률 과정의 확률 밀도 함수를 추정 1. 군집 비슷한 샘플을 구별해 하나의 클러스터 또는 비슷한 샘플 그룹으로 할당하는 작업 사용 예 고객 분류 데이터 분석 차원 축소 기법 이상치 탐지 준지도 학습 검색 엔진 이미지 분할 1) k-평균 각 클러스터의 중심을 찾고 가장 가까운 클러스터에 샘플을 할당 from sklearn.cluster import KMeans k=5 kmeans = KMeans(n_clusters=k) y_pred = kmeans.fit_predict(X) 클러스터의 크기가 많이 다르면 잘 작동하지 않음 -> 샘플은 클러스터에 할당할 때 센트로이드까지 거리를 고려하는 .. 2022. 2. 7.
[핸즈온 머신러닝] 8장 차원 축소 훈련 속도를 높임 데이터 시각화에 유용 차원 축소에 사용되는 두 가지 주요 접근 방법 : 투영, 매니폴드 학습 인기 있는 차원 축소 기법 : PCA, 커널 PCA, LLE 1. 차원의 저주 훈련 세트의 차원이 클수록 과대적합 위험이 커짐 해결책 중 하나로 훈련 샘플의 밀도가 충분히 높아질 때까지 훈련 세트의 크기를 키우기 그러나 기하 급수적으로 늘어날 수 있음 2. 차원 축소를 위한 접근 방법 1) 투영 대부분의 문제는 모든 차원에 걸쳐 균일하게 퍼져있지 않음 모든 훈련샘플이 고차원 공간 안의 저차원 부분 공간에 놓여 있음 차원 축소에 있어서 투영이 언제나 최선의 방법은 아님 스위스 롤 데이터셋처럼 부분 공간이 뒤틀리거나 휘어 있기도 함 2) 매니폴드 학습 d차원 매니폴드는 국부적으로 d차원 초평면으로 .. 2022. 1. 24.
[핸즈온 머신러닝] 7장 앙상블 학습과 랜덤 포레스트 앙상블: 일련의 예측기로부터 예측을 수집하면 가장 좋은 모델 하나보다 더 좋은 예측을 얻을 수 있음 앙상블 방법 앙상블 학습 알고리즘 훈련 세트로부터 무작위로 각기 다른 서브넷을 만들어 일련의 결정 트리 분류기 훈련 가능 예측기가 가능한 서로 독립적일 때 최고의 성능을 발휘 랜덤 포레스트 앙상블 방법으로 만든 트리에 예측을 위해 모든 개별 트리의 예측을 구한 뒤 가장 많은 선택을 받은 클래스를 예측으로 삼음 간단한 방법임에도 오늘날 가장 강력한 머신러닝 알고리즘 중 하나 프로젝트의 마지막에 다다르면 흔히 앙상블 방법을 사용하여 이미 만든 여러 괜찮은 예측기를 연결하여 더 좋은 예측기를 만듦 1. 투표 기반 분류기 직접 투표 분류기 분류기 여러 개를 훈련시킨 뒤 더 좋은 분류기를 만들기 위해 각 분류기의 .. 2022. 1. 22.
[핸즈온 머신러닝] 6장 결정 트리 SVM처럼 분류와 회귀 작업, 다중 출력 작업도 가능한 다재다능한 머신러닝 알고리즘 매우 복잡한 데이터셋도 학습할 수 있는 강력한 알고리즘 최근에 가장 강력한 머신러닝 알고리즘 중 하나인 랜덤 포레스트의 기본 구성 요소이기도함 1. 결정 트리 학습과 시각화 from sklearn.tree import DecisionTreeClassifier tree_clf = DecisionTreeClassifier(max_depth=2) tree_clf.fit(X, y) export_graphviz() 함수를 사용해 그래프 정의를 .dot 파일로 출력하여 훈련된 결정 트리를 시각화할 수 있음 2. 예측하기 노드의 sample 속성: 얼마나 많은 훈련 샘플이 적용되었는지 헤아린 것 node의 gini 속성: 불순도 측정.. 2022. 1. 18.