딥러닝 11

scikit learn, GridSearchCV

데이터의 정제를 완료하면 모델을 통해 데이터를 학습하고 타겟 값을 예측한다. 머신러닝에 있어서 모델의 성능을 높이기 위해서 가장 중요한 작업은 데이터를 모델에 맞게 정제하는 과정이라고 생각한다. 그 다음으로는 모델의 파라미터 값을 조정하여 성능을 높이는 방법이 있다. 모델에 따라 수 많은 파라미터들이 존재하기 때문에, 사람이 모든 값을 하나씩 바꿔가며 실험하는 것은 많은 노력과 인력을 필요로 한다. 사이킷 런에서는 모델의 파라미터를 설정할 때, 사람이 일정 값을 설정해주면 모델이 그 조합들을 자동적으로 조합하여 실험을 실행시키는 메서드를 제공하는데 그것이 바로 GridSearchCV 이다. greedy 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 ..

데이터분석 2023.08.18

Model 평가 및 지표들

정성적인 지표 R2 Score - Regression Model 의 정성적인 적합도 판단 - R2는 평균적으로 예측한 것에 비해 분산을 얼마나 축소시켰는지에 대한 판단 - 보통은 Correlation의 제곱으로 표현한다. - 정성적인 판단이 필요한 이유는 통상적인 Model의 예측력을 판단하기 위함이다 - 0 ~ 1 사이의 값을 갖고 1에 가까울 수록 좋은 모델이다. -R2 Score = SSE / SST = 1 - SSR / SST -SST : 총 편차 / SSR : 회귀식과 평균으로 예측한 것의 차이 -보통 0.25 이상일 경우 유의미하다고 판단한다.( 평균 예측한것 대비, 분산을 25% 이상 줄여준 것 ) 정량적인 지표 Mean Absolute Error : MAE - 평균 절대 오차 - 실제 값과..

NLP 2023.07.31

[머신러닝교과서] 1독 기념 사진촬영

후기 작년에 진행했던 멀티캠퍼스 부트캠프에서 교재로 제공받았던 머신러닝 서적.., 부트캠프 진행할 때는 책을 들춰볼 여유 조차 없어서 쟁여두고 있다가 부트캠프가 끝나고 6개월이 지나고 나서야 들춰보게 된 책이다. 대충 800페이지에 달하는 엄청난 두께의 책이라 1독 하는데 얼마나 걸린건지 모르겠다..3개월인가..? 이렇게 많이 걸린것은 나의 게으름 때문에 아닌가 생각한다. 책을 정독하면서 부트캠프 때, 스치듯 들었던 개념들을 다시 한번 익힐 수 있었다. 하지만 그냥..본 수준 이랄까..? 그때는 모든게 새로웠고 모든게 무슨 말인지 몰랐다면, 지금은 익숙한데 무슨 말인지 모르겠다는 느낌이랄까....? 언젠간 이해가 되고 사용하게 되는 날이 오겠지 하며 시작한 정독이지만...하 넘너 어려운 것.. 다음부터는..

[머신러닝교과서] GAN 모델 구현하기(2)

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com GAN 모델 훈련하기 손실 함수를 위해 BinaryCrossentropy 클래스 객체를 만들어 앞서 처리한 배치에 대해 생성자와 판별자의 손실을 계산한다. 이를..

[머신러닝교과서] GAN 모델 구현하기(1)

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 생성적 적대 신경망(Generative Adversarial Network, GAN)의 주요한 목적은 훈련 데이터셋과 동일한 분포를 가진 새로운 데이터를 합성하..

[머신러닝교과서] RNN을 사용한 영화 리뷰 감성 분석(2)

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 문장 인코딩을 위한 임베딩 층 이전 데이터 준비 단계에서 동일한 길이의 시퀀스를 생성했다. 이 시퀀스의 원소는 교유한 단어의 인덱스에 해당하는 정수이다. 이런 ..

6.2 k-겹 교차 검증을 사용한 모델 성능 평가

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 모델이 너무 간단하면 과소적합(높은 편향)이 문제가 되고 너무 복잡하면 훈련 데이터에 과대 적합(높은 분산)이 될 수 있다. 적절한 편향-분산 트레이드오프를 찾..

Chapter 3.4 서포트 벡터 머신을 사용한 최대 마진 분류, 머신러닝교과서, python

* 본 포스팅은 머신러닝 교과서를 참고하여 작성되었습니다. 3.4 서포트 벡터 머신을 사용한 최대 마진 분류 서포트 벡터 머신(Support Vector Machine, SVM) : SVM은 퍼셉트론의 확장으로 생각 할 수 있다. SVM의 최적화 대상은 마진을 최대화 하는 것이다. 3.4.1 최대 마진 큰 마진(large margin)의 결정 경계를 원하는 이유는 일반화 오차가 낮아지는 경향이 있기 때문이다. 반면 작은 마진의 모델은 과대적합되기 쉽다. 3.4.2 슬랙 변수를 사용하여 비선형 분류 문제 다루기 슬랙변수 : 오류를 허용하는 '직선', 소프트 마진 분류(soft margin classification) 슬랙 변수는 선형적으로 구분되지 않는 데이터에서 선형 제약 조건을 완화할 필요가 있기 때문..

Chapter8. 딥러닝, DL from Scratch, python

* 본 포스팅의 내용은 모두 밑바닥부터 시작하는 딥러닝 을 참고하여 작성한 내용입니다. 8.1 더 깊게 8.1.1 더 깊은 신경망으로 여기에서 사용하는 합성곱 계층은 모두 3X3 크기의 작은 필터로, 층이 깊어지면서 채널 수가 더 늘어나는 것이 특징이다.(합성곱 계층의 채널 수는 앞 계층에서부터 순서대로 16, 16, 32 , 32, 64, 64 로 늘어간다) 또 그림과 같이 풀링 계층을 추가하여 중간 데이터의 공간 크기를 점차 줄여간다. 그리고 마지막 단의 완전연결 계층에서는 드롭아웃 계층을 사용한다. 가중치 초깃값 : He 초깃값 가중치 매개변수 갱신 : Adam 위의 신경망의 특징 - 3 x 3의 작은 필터를 사용한 합성곱 계층 - 활성화 함수는 ReLU - 완전연결 계층 뒤에 드롭아웃 계층 사용 ..

Chapter6.2 가중치의 초깃값, DL from Scratch, 파이썬

6.2 가중치의 초깃값 신경망 학습에서 특히 중요한 것은 가중치의 초깃값이다. 가중치의 초깃값을 무엇으로 설정하느냐가 신경망 학습의 성패가 가르는 일이 있다. 이번 절에서는 권장 초깃 값에 대해서 설명하고 실험을 통해 실제로 신경망 학습이 신속하게 이뤄지는 모습을 확인하겠다. 6.2.1 초깃값을 0으로 하면? 가중치 감소(weight decay) 기법 : 가중치 매개변수의 값이 작아지도록 학습하는 방법이다. 즉, 가중치 값을 작게 하여 오버피팅이 일어나지 않게 하는 것이다. 그렇다면 가중치의 초깃값을 모두 0으로 설정한다면 어떨까? 이는 나쁜 아이디어인데, 실제로 가중치 초깃값을 0으로 하면 학습이 올바로 이뤄지지 않는다. 그 이유는 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기 때문이다. 6.2...