ALL100 [Pytorch Part.1] Basic Skill 1. Scalar 우리가 아는 선형대수에서 배우는 스칼라 즉 상숫값입니다. torch 내 tensor method를 이용해 스칼라 값을 정의할 수 있습니다. import torch scalar1 = torch.tensor([1.]) scalar1 = torch.tensor([2.]) print(scalar1) #tensor([1.]) tensor([1.])가 출력됩니다. 이러한 스칼라값들은 사칙연산 기호 또는 내장 메서드를 이용해 계산할 수 있습니다. torch.add(scalar1, scalar2) # 덧셈 # scalar1 + scalar2 torch.sub(scalar1, scalar2) # 뺄셈 # scalar1 - scalar2 torch.mul(scalar1, scalar2) # 곱셈 # sc.. 2022. 1. 5. [Deeplearning Part.2] 신경망 퍼셉트론에서 신경망으로의 진화 퍼셉트론은 우리가 직접 가중치 매개변수의 적절한 값을 설정해 논리회로들에 맞는 값을 출력할 수 있도록 했습니다. 하지만 신경망은 이 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 있습니다. 1. 신경망의 예와 퍼셉트론 복습 그림에도 보이다시피 신경망의 가장 왼쪽 층은 입력층, 중간은 은닉층, 맨 오른쪽은 출력층이라고 합니다. 여기서 여러 신호를 입력받아 하나의 출력신호를 내보내는 퍼셉트론을 확대해 보겠습니다. 여기서 b는 퍼셉트론 수식의 θ를 -b로 치환하여 편향으로 계산해준 것입니다. 편향 : 뉴런이 얼마나 쉽게 활성화되느냐를 제어 가중치 : 각 신호의 영향력을 제어 2. 활성화 함수 편향을 추가한 퍼셉트론에서 y의 값을 a로 두고, 이 a를 h()라.. 2022. 1. 5. [Deeplearning Part.1]퍼셉트론과 단순 논리 회로 1. 퍼셉트론 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력합니다. 위 그림은 입력으로 2개의 신호를 받은 퍼셉트론의 예입니다. 각 x값들은 입력신호, y값은 출력신호, w값들은 가중치를 뜻합니다. 그림의 원을 뉴런 혹은 노드라고 부릅니다. 위 그림은 첫 번째 그림으 퍼셉트론을 수식으로 나타낸 것입니다. 퍼셉트론은 복수의 입력 신호 각각에 고유한 가중치를 부여하고, 이 가중치는 결과에 주는 영향력을 조절하는 요소로 작용합니다. 2. 단순한 논리회로 AND 게이트는 두 입력이 모두 1일 떄만 1을 출력하고, 그 외에는 0을 출력합니다. 이것을 만족하는 퍼셉트론 수식의 매개변수 조합은 무한히 많습니다. NAND와 OR 게이트의 진리표도 마찬가지입니다. 적절한 가중치와 임계값을 설정한다면 진리표의.. 2022. 1. 5. [ML] 지도학습/회귀 회귀 평가 지표 Part.2 skit-learn 라이브러리를 사용한 회귀 평가 지표 실습 (데이터는 자전거 대여 수요예측(캐글))을 사용하였습니다. sklearn.metrics에서 mean_squared_error, mean_absolute_error를 불러와 mse와 mae를 계산할 수 있습니다. MSLE를 mean_squared_log_error를 통해 구할 수 있지만, 데이터 값의 크기에 따라 오버플로/언더플로 오류가 발생할 수 있습니다. 따라서 np.log1p()를 통해 이 문제를 해결해 줍니다. 그리고 log1p()를 통해 변환된 값은 expm1()을 통해 원래 스케일로 복구할 수 있습니다. 따라서 다음과 같은 함수를 만들어 줍니다. 위 함수를 통해 기본적인 전처리만 한 데이터셋에 대한 회귀모델 적용 후 평가입니다. 다음은.. 2021. 9. 24. [ML] 지도학습/회귀 회귀 평가 지표 Part.1 회귀 평가 지표 회귀의 평가를 위한 지표는 실제 값과 회귀 예측값의 차이를 기반으로 합니다. 이 차이는 단순히 합산하면 오류가 0에 가깝게 나타날 수 있기 때문에 오류의 절댓값 평균이나 제곱 또는 제곱한 뒤 다시 루트를 씌운 평균값을 구합니다. 회귀 평가 지표 종류 1) MAE (Mean Absolue Error) 실제 값과 예측 값의 차이를 절댓값으로 변환해 평균한 것입니다. 2) MSE (Mean Squared Error) 실제 값과 예측 값의 차이를 제곱해 평균한 것 3) RMSE (Root Mean Squared Error) MSE 값은 오류의 제곱을 구하므로 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE 값을 쓰는 것입니다. 4) MSLE (Mean Squared Lo.. 2021. 9. 24. [Python] scatter-matrix - 산점도와 히스토그램을 한 번에 데이터 프레임 상에서 열(feature)들의 상관관계에 대한 시각화를 할 때 heatmap을 많이 써왔는데, 항상 같은 열들이 매칭되는 대각선이 낭비된다고 생각했었습니다. 그런데 파이썬 판다스 패키지에는 scatter-matrix라는 함수가 있습니다. 대각선 외의 행렬에는 상관관계의 산점도를, 대각선 행렬에는 수치형 특성의 히스토그램을 출력해줍니다. feature 간의 관계와 feature의 분포를 동시에 시각적으로 파악하는데 상당히 효율적인 함수라는 생각이 들었습니다. corr()함수를 적용시킨 뒤 heatmap으로 시각화하는 과정 데이터는 캘리포니아 주택가격 데이터를 사용하였습니다. 상관관계 도출 후 시각화하는 두 번의 과정을 거칩니다.(물론 corr()함수를 heatmap()내에 넣을 수 있습니다... 2021. 8. 5. [ML] 비지도학습 / 군집화 / K-means K-평균은 군집화에서 일반적으로 사용되는 알고리즘입니다. K-평균은 군집 중심점이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 군집화 기법입니다. 위 사진처럼 임의의 점에서 가까운 점들을 군집화하고 그 군집의 중심점을 찾아 그 중심점에 가까운 점들을 다시 군집화하는 순서를 거쳐 중심점을 이동했는데 데이터의 중심점 소속 변경이 없어질 때 군집화를 종료합니다. K-평균의 장점 1. 일반적인 군집화에서 가장 많이 사용된다 2. 알고리즘이 쉽고 간결하다 K-평균의 단점 1. 군집화 정확도가 떨어진다. (PCA적용) 2. 반복횟수가 많을 경우 수행시간이 느리다. 3. 군집 개수 설정을 가이드하기 어렵다. 사이킷런 K-평균 주요 파라미터 1. n_cluster : 군집의 개수, 즉 .. 2021. 7. 30. [ML] 데이터 전처리 - SMOTE 오버 샘플링 언더 샘플링과 오버 샘플링 언더샘플링 - 많은 레이블을 가진 데이터 세트를 적은 레이블을 가진 데이터 세트 수준으로 감소시킴 오버샘플링 - 적은 레이블을 가진 데이터 세트를 많은 레이블을 가진 데이터 세트 수준으로 증식시킴 * 오버 샘플링 방식이 예측 성능상 더 유리한 경우가 많아 주로 사용됨 SMOTE(Synthetic Minority Over-sampling Technique) SMOTE은 적은 데이터 세트에 있는 개별 데이터들의 K 최근접 이웃을 찾아서 이 데이터와 K개의 이웃들의 차이를 일정 값으로 만들어서 기존 데이터와 약간 차이가 나는 새로운 데이터들을 생성하는 방식입니다. SMOTE을 구현한 대표적인 파이썬 패키지인 imbalanced-learn은 아나콘다 프롬프트를 관리자 권한으로 실행하고.. 2021. 7. 24. [ML] 지도학습/분류 GBM(Gradient Boosting Machine) GBM이란? GBM은 AdaBoost와 개별 약한 학습기(weak learner)가 순차적으로 오류 값에 대해 가중치를 부여한 예측 결정 기준을 모두 결합해 예측을 수행한다는 점에서 유사하나, 가중치 업데이트를 경사 하강법(Gradient Descent)를 이용하는 것이 큰 차이입니다. AdaBoost는 이전에 잘못 분류한 데이터에 가중치를 더 많이 주고, GBM은 각 관측치마다 잔차를 구하고, 이 잔차에 첫 번째 약한 학습기를 적합시킵니다. 적합된 결과에 따라 잔차의 예측값 (마지막 노드 (leaf)에 속한 잔차들의 평균)을 구하고 잔차 예측값 * 학습률을 이전 예측값과 더해 새롭게 예측값을 업데이트합니다 의 순서를 통해 가중치를 업데이트하게 됩니다. GBM 하이퍼 파라미터 트리 기반 파라미터는 결정트.. 2021. 7. 23. 이전 1 ··· 7 8 9 10 11 12 다음