목록전체 글 (68)
My Data Story

◈ '인공 신경망' 목차 ◈ 1. 퍼셉트론 2. 다층 퍼셉트론 3. 케라스 API 소개 딥러닝 API 중 가장 많이 사용되는 케라스 API 에 대해 살펴보고, 텐서플로우 기반의 케라스 구현 방법을 살펴보자. 4. 시퀀셜 API 구현 5. 함수형 API 구현 6. 서브클래싱 API 구현 7. 모델 저장과 복원, 콜백, 텐서보드 8. 신경망 하이퍼파라미터 튜닝하기 1. 딥러닝 API 케라스는 모든 종류의 신경망을 손쉽게 만들고 훈련, 평가, 실행할 수 있는 고수준 딥러닝 API이다. 케라스는 계산 백엔드에 의존하여 신경망에 필요한 많은 연산을 수행한다. 인기 있는 세 가지 딥러닝 라이브러리 중에서 백엔드를 선택할 수 있었다. ˙ 텐서플로 ˙ 마이크로소프트 코그니티브 툴킷(CNTK) ˙ 시애노 혼동을 피하기 ..

◈ '인공 신경망' 목차 ◈ 1. 퍼셉트론 2. 다층 퍼셉트론 다층 퍼셉트론의 구조와 활성화 함수에 대해 살펴보고, 이를 활용한 회귀 및 분류 모델을 살펴보자. 3. 케라스 API 소개 4. 시퀀셜 API 구현 5. 함수형 API 구현 6. 서브클래싱 API 구현 7. 모델 저장과 복원, 콜백, 텐서보드 8. 신경망 하이퍼파라미터 튜닝하기 1. 다층 퍼셉트론 구조 다층 퍼셉트론은 입력층 하나와 은닉층이라 불리는 하나 이상의 TLU 층과 마지막 출력층으로 구성된다. 이때 은닉층을 여러 개 쌓아 올린 인공 신경망을 심층 신경망 Deep Neural Network (DNN) 이라고 한다. 2. 다층 퍼셉트론 훈련 2.1 역전파 훈련 알고리즘 다층 퍼셉트론 훈련하기 위해 역전파 훈련 알고리즘을 사용한다. 간단히..

◈ '인공 신경망' 목차 ◈ 1. 퍼셉트론 가장 간단한 인공 신경망 구조인 퍼셉트론에 대해 살펴보자. 2. 다층 퍼셉트론 3. 케라스 API 소개 4. 시퀀셜 API 구현 5. 함수형 API 구현 6. 서브클래싱 API 구현 7. 모델 저장과 복원, 콜백, 텐서보드 8. 신경망 하이퍼파라미터 튜닝하기 인공 신경망은 딥러닝의 핵심이다. 요즘 많이 사용하는 다층 퍼셉트론(MLP)을 설명하고 이어서 케라스 API를 사용하여 인공 신경망을 구현하는 방법을 알아본다. 케라스는 신경망 구축, 훈련, 평가, 실행을 목적으로 설계된 멋지고 간결한 고수준 API 이다. 1. TLU 퍼셉트론은 가장 간단한 인공 신경망 구조 중 하나로 TLU 또는 LTU라 불리는 조금 다른 형태의 인공 뉴런을 기반으로 한다. 입력과 출력이..

◈ '차원 축소' 목차 ◈ 1. 투영, 매니폴드 2. PCA, 랜덤 PCA, 점진적 PCA 3. 커널 PCA 사이킷런에서 커널 PCA 를 구현하고 적절한 하이퍼파라미터 선정 방법에 대해 알아본다. 4. MDS, Isomap 5. 지역 선형 임베딩 LLE 6. t-SNE 1. 커널 PCA 이전까지 살펴본 PCA는 SVD 알고리즘을 활용한 방법이고 커널 PCA 는 SVM 때 처럼 고차원에 보낸 듯한 효과를 내어 PCA를 적용한다. 커널 PCA 를 적용해 차원 축소를 위한 복잡한 비선형 투형을 수행할 수 있다. 이 기법은 투영한 후 샘플의 군집을 유지하거나 꼬인 매니폴드에 가까운 데이터셋을 펼칠 때도 유용하다. 2. KernelPCA 사이킷런에서 KernelPCA 를 통해 커널 PCA 모델을 구현할 수 있다...

◈ '차원 축소' 목차 ◈ 1. 투영, 매니폴드 2. PCA, 랜덤 PCA, 점진적 PCA PCA, 랜덤 PCA, 점진적 PCA 에 대해 살펴보고, 적절한 축소 차원의 수를 결정하는 방법과 PCA 활용에 대해 알아보자. 3. 커널 PCA 4. MDS, Isomap 5. 지역 선형 임베딩 LLE 6. t-SNE PCA 주성분 분석은 가장 인기 있는 차원 축소 알고리즘이다. 데이터에 가장 가까운 초평면을 정의한 다음, 데이터를 이 평면에 '투영' 시킨다. 1. PCA 알고리즘 step1. 주성분 찾기 투영하기 전에 올바른 초평면을 선택해야 한다. 올바른 초평면은 분산이 최대로 보존되는 축에 투영한 것이다. 이는 분산이 최대로 보존되는 축을 선택하는 것이 정보가 적게 손실되기 때문이다. 다시 말해, 원본 데이..

◈ '차원 축소' 목차 ◈ 1. 투영, 매니폴드 차원의 저주를 살펴보고, 차원 축소하는 2가지 방법 투영, 매니폴드의 컨셉에 대해 알아보자. 2. PCA, 랜덤 PCA, 점진적 PCA 3. 커널 PCA 4. MDS, Isomap 5. 지역 선형 임베딩 LLE 6. t-SNE 1. 차원의 저주 많은 경우 머신러닝 문제는 훈련 샘플 각각이 수천 심지어 수백만 개의 특성을 가지고 있다. 이런 많은 특성은 훈련을 느리게 할 뿐만 아니라, 좋은 솔루션을 찾기 어렵게 만든다. 이런 문제를 종종 차원의 저주라고 한다. 훈련 세트의 차원이 클수록 과대 적합 위험이 커진다. 이론적으로 차원의 저주를 해결하는 방법은 훈련 샘플의 밀도가 충분히 높아질 때까지 훈련 세트의 크기를 키우는 것이다. 하지만 불행히도 차원의 수가 ..

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 3. 에이다부스트 4. 그레이디언트부스팅 5. XGBoost 6. 스태킹 스태킹 컨셉에 대해 이해해보자. 1. 스태킹 '앙상블에 속하는 모든 예측기의 예측을 취합할 때 간단한 함수 대신에 취합하는 모델을 생성할 수 없을까?' 라는 기본 아이디어에서 출발한다. 하위 예측기 각각의 값을 취합하여 최종 결과를 예측하는 마지막 예측기를 블렌더 또는 메타 학습기라고 한다. 블렌더를 학습시키는 일반적인 방법은 홀드 아웃 세트를 사용한다. step1 훈련 세트를 두 개의 서브셋으로 나눈다. 첫 번째 layer에 3개의 예측기가 있다 할 때, 첫 번째 subset은 첫 번째 layer의 예측기를 훈련시키기 위해 사용된다. step2 첫 번째 layer..

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 3. 에이다부스트 4. 그레이디언트 부스팅 그레이디언트 부스팅에 대해 이해하고 확률적 그레이디언트 부스팅 패키지 lightGBM 에 대해 알아보자 5. XGBoost 6. 스태킹 1. 그레이디언트 부스팅 인기 많은 또 하나의 부스팅 알고리즘은 그레이디언트 부스팅이다. 그레이디언트 부스팅은 앙상블에 이전까지의 오차를 보정하도록 예측기를 순차적으로 추가한다. 에이다부스터처럼 반복마다 샘플의 가중치를 수정하는 대신 이전 예측이 만든 잔여 오차에 새로운 예측기를 학습시킨다. from sklearn.tree import DecisionTreeRegressor tree_reg1 = DecisionTreeRegressor(max_depth=2) tr..

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 3. 에이다부스트 부스팅 컨셉에 대해 이해하고 에이다 부스트 알고리즘과 모델 구현 방식에 대해 알아보자. 4. 그레이디언트부스팅 5. XGBoost 6. 스태킹 1. 부스팅 개요 부스팅은 약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법이다. 즉 앞의 모델을 보완해나가면서 일련의 예측기를 학습시키는 것이다. 부스팅 종류는 크게 에이다 부스트와 그레이디언트 부스팅이 있다. 2. 에이다부스트 이전 예측기를 보완한 새로운 예측기를 만드는 방법으로 이전 모델이 과소 적합했던 샘플의 가중치를 더 높이는 것이다. 에이다부스트 훈련 과정은 다음과 같다. step1 알고리즘이 첫 번째 분류기를 훈련 세트에서 훈련시키고 예측한다. ste..