ML 🐼 20

[딥러닝] 옵티마이저 (Optimizer)

1. Optimizer? 딥러닝 모델을 학습하다 보면 마주치는 장치가 있다. 바로 옵티마이저(Optimizer)이다. 옵티마이저는 무엇일까? 쉽게 말해서 loss function(ex MSE, MAE...)을 사용해서 구한 오차를 이용하여 미분을 하여 기울기를 구하고이를 통해서 어떻게 뉴런 네트워크의 파라미터를 업데이트 할지 결정하는 방법이다. 즉, 옵티마이저를 결정함에 따라서 파라미터의 수정 방법과 학습의 정도가 차이 날 수 있다.물론 명심해야 할 것은 모든 학습에서 최고의 방법은 존재하지 않는다.각 옵티마이저를 사용해보고 비교한 다음 최적의 방법을 선택하는 것이 최선이다. 위 사진은 옵티마이저의 발전단계를 표현한 사진이다. 스텝 방향을 조절하는 방법과 스텝 사이즈를 조절하는 방법으로 크게 나누어진다...

베이즈 정리(Bayes' theorem)

인공지능을 공부하다보면 수많은 모델들이 오늘 정리할 '베이즈 정리'에 기반을 두고 있다는 것을 확인 할 수 있다. 기초적인 조건부 확률을 통해서 모델을 구성하고 실제 세계에 이러한 모델들을 적용하고 있는 것이다 1. 조건부 확률? 고등학교 시절 확률과 통계를 배워본 학생이라면 '조건부 확률'은 한번쯤 들어보았을 것이다. A와 B라는 사건이 있다고 가정해보자 여기서 조건부 확률은 특정한 사건이 발생한 상황에서 또 다른 사건이 발생할 확률로B가 일어난 상황에서 A가 발생할 확률(조건부 확률 예시)이다 이를 수식으로 표현하면 아래와 같다 $P(A|B)$ 또한 이를 정리하면 아래와 같다 $P(A|B) = \frac{P(A \cap B)}{P(B)} $ 이를 활용하면 베이즈 정리를 할 수 있다 2. 베이즈 정리 ..

[Deep한 머신러닝] Boosting 부스팅 3편 (GradientBoost Classification)

1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.2.2 Gradient Boosting - Classification 지난시간 우리는 Gradient Boosting, 그중에서도 상대적으로 이해하기 쉬운 Regression에 대해서 알아 보았다 이번시간에는 Classification에 대해서 ..

[Deep한 머신러닝] Boosting 부스팅 2편(GradientBoosting Regression)

1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.2.1 Gradient Boosting - Regression 오늘 알아볼 Boosting 기법은 Gradient Boosting 그중에서도 Regression이다 Classfication과 Regression의 수식이 조금 다르기 때문에 비교적..

[Deep한 머신 러닝] Boosting 부스팅 1편(Ada boosting)

1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.1 AdaBoosting 오늘 알아볼 부스팅은 AdaBoosting이다 참고한 동영상 강의 : https://youtu.be/HZg8_wZPZGU AdaBoosting은 Adaptive + Boosting으로 만들어진 단어로 약한 분류기(weak..

[논문 구현] 근본을 찾아서... 0. LeNet-5 (GradientBased Learning Applied to DocumentRecognition)

오늘은 "특별히" CNN 모델의 근본인 LeNet5를 Pytorch를 활용해서 구현해볼려고 합니다 최근 머신러닝을 sklearn없이 구현하고 있는 개인만의 프로젝트를 하고 있는데 추가 적인 개인 프로젝트로 DL 모델들로 직접 구현해보려고 한다 논문 링크 : http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf 오늘 구현해볼 논문은 98년도에 나온 CNN의 아버지 LeNet-5이다 (근본 중에 근본) LeNet- 5 기본 구조 (LeNet-5 Architecture) 98년도에 나온 모델이므로 구조는 상당히 단순하다 *전체적인 구조* 3개의 Convolutions layer - 2개의 Subsampling layer - 1개의 fc레이어 [활성화 함수..

[핸즈온머신러닝] 앙상블(Ensemble) 학습 (2) [부스팅 ~ 스태킹]

목차 앙상블 기법이란? 앙상블 기법의 종류 보팅 배깅, 페이스팅 랜덤 포레스트 부스팅 스태킹 2. 앙상블 기법의 종류 2.4 부스팅 (Boosting) 여러 모델을 연결하여 강한 모델을 만드는 앙상블 기법을 말한다 즉, 앞의 모델을 뒤의 모델이 보완하면서 더 좋은 모델을 만들어 내는 것이다 이러한 부스팅에는 에이다 부스트 AdaBoost와 그레이디언트 부스팅 Gradient boosting이 있다 2.4.1 에이다 부스트 AdaBoost 에이다 부스트는 앞의 모델이 (이전모델) '과소적합' 했던 훈련 샘플의 가중치를 높여 학습해 나가는 앙상블 기법이다 예를들어 설명하면 모델을 만들 때 먼저 알고리즘이 기반이 되는 첫 번째 모델을 훈련세트로 훈련하고 예측을 만들어낸다. 그런 다음 알고리즘이 잘못 분류된 훈..

[핸즈온머신러닝] 앙상블(Ensemble) 학습 (1) [보팅 ~ 랜덤 포레스트]

목차 앙상블 기법이란? 앙상블 기법의 종류 보팅 배깅, 페이스팅 랜덤 포레스트 부스팅 스태킹 1. 앙상블 기법이란? 여러개의 학습 모델(분류, 회귀 ...) 을 학습하여 학습된 각 모델에서 예측을 만들어 낸 후 그 예측들을 결합하여 보다 정확도가 높은 예측을 만들어 내는 기법이다 이러한 앙상블기법에는 보팅 (하드, 소프트), 배깅, 페이스팅, 부스팅 등 다양한 기법들이 존재하고 있 2. 앙상블 기법의 종류 2.1 Voting 보팅 (투표 기반 분류기) 보팅은 말 그대로 같은 데이터셋을 통해서 각 모델들을 학습시키고 이들의 예측을 투표를 통해서 최적의 예측으로 만들어 내는 방법으로 하드 보팅과 소프트 보팅이 있다. 2.1.1 하드 보팅(Hard voting)과 소프트 보팅(Soft voting) 하드 보팅..

[월드컵] 데이터로 보는 대한민국 vs 우루과이

기대하고 떨면서 기다린 대한민국의 월드컵이 '마침내' 시작했습니다 생각했던것 보다 좋은 경기력에 어제 하루는 국뽕에 차올라 '잘했다... 잘했다... 만 외쳤지만'오늘부터는 본업으로 돌아가 데이터를 기반으로 경기를 분석해보려고 합니다 데이터는 'WhoScored'와 'Sofascore'를 참고하였습니다.그리고 데이터 시각화는 아래 트위터 계정을 참고했습니다 DB (@DatoBHJ) / 트위터 ⚽ Data Vizzes twitter.com Ben Griffis (@BeGriffis) / 트위터 Statistician | Visualizing & analyzing ⚽️ from around the globe with some focus on 🇧🇪🇱🇻🇰🇷🇯🇵🇳🇴🇸🇪🇩🇰 | Run https://t.co/gM5..

[논문 리뷰-CNN] 1. ImageNet Classification with Deep Convolutional Neural Networks (AlexNet)

더보기 1989년 'Backpropagation applied to handwritten zip code recognition, LeCun, 1989'을 시작으로 CNN의 이론적 토대가 완성되었다. 이는 1998년 'LeNet'으로 연결 되었으나 당시의 하드웨어적인 한계 때문에 큰 모델을 사용하기 힘들었다. 그런 중 2012년 LeNet을 발전시킨 AlexNet이 나오게 되고 GPU를 사용한 모델 학습이 가능해짐으로써 본격적인 CNN의 시대가 개막하게 되었다. ✅본격적인 시작에 앞서서 간단히 살펴 보는 CNN - 많고 많은 신경망 모델 가운데 왜? 이미지는 CNN인가? CNN을 사용하기 이전에도 MLP(다층 신경망)를 사용하여 이미지를 학습할 수 있었다. 그러나 이는 이미지를 flat하게 풀어서 사용하였..