본문 바로가기

ML & DL35

[DL] PyTorch로 인공신경망(ANN) 구현하기 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. 간단한 분류 모델 구현 예제 : XOR 문제 풀이 PyTorch로 간단한 ANN을 구성하여 XOR 문제를 풀이하는 모델을 만들어보자!! 데이터셋 만들기 Scikit-Learn의 make_blobs 모듈을 사용해서 XOR 문제의 데이터들을 생성하기 Train 데이터는 80개, Test 데이터는 20개 생성 from sklearn.datasets import make_blobs # Train : 80개 x_train, y_train = make_blobs( random_state = 100, n_samples = 80, # 생성.. 2023. 1. 11.
[ML] Logistic Regression 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더 공부하고 수정하도록 하겠습니다. 감사합니다. 로지스틱 회귀란? 로지스틱 회귀는 선형 회귀 방식을 분류에 적용한 알고리즘이다. 머신러닝에서 2진 분류(Binary Classification) 모델로 사용된다. 다중분류도 가능은 함. 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류한다. 선형 회귀와 차이점 : 학습을 통해 선형 함수의 회귀 최적선을 찾는 것이 아니라 시그모이드(Sigmoid) 함수 최적선을 찾고 이 시그모이드 함수의 반환 값을 확률로 간주해 분류를 걸정한다. 로지스틱 회귀의 확률.. 2023. 1. 10.
[OpenCV] Error : OpenCV(4.6.0) :-1: error: (-5:Bad argument) in function 'add' 아래 내용은 제가 직접 학습하면서 경험한 에러를 해결하고, 그 방법을 정리한 내용입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. OpenCV 의 Tracker 를 사용하여 Face Tracking 프로젝트를 연습하던 중에 두가지 오류가 발생했다. 결론적으로는 둘다 같은 오류였고, 버전 차이에서 발생한 오류였다. 참고한 코드의 OpenCV version은 4.1.2 버전이었고 내가 실습한 Colab 환경의 OpenCV 버전은 4.6.0 버전이었다. 1. MultiTracker_create 연습을 참고하며 공부한 코드에서는 cv2.MultiTracker_create() 를 이용해서 MultiTracker 를 불러왔는데, m.. 2022. 12. 27.
[OpenCV] 이미지에 문자열 넣기 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 참고 자료들은 최대한 Reference에 넣었으며 문제가 생길시 연락 부탁드립니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. Computer Vision 관련 이미지 처리 및 딥러닝을 하다보면 이미지에 문자열을 입력해야하는 경우가 생긴다. 이때 OpenCV를 사용하여 텍스트를 입력할 수 있다. OpenCV는 Drawing Function을 통해 선이나 도형, 문자열을 넣을수 있는 기능을 제공한다. 이 중에서 putText() 라는 메소드를 이용해서 이미지에 텍스트를 입력할 수 있다. cv2.putText cv2.putText(img, text, org, fontFa.. 2022. 12. 20.
[ML] 선형 회귀(Linear, Polynomial, Multiple) 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. 선형 회귀란? 하나의 종속변수와 하나 이상의 독립변수 사이에 최적의 직선을 찾는 알고리즘 예측값과 실제값의 오차를 최소화하는 선을 찾아서 모델을 최적화 수식을 도출하기에 매우 쉽게 때문에 그 해석도 직관적 단순 선형 회귀(Linear Regression) 독립변수도 하나, 종속변수도 하나인 단순한 형태의 선형 회귀 단순 선형 회귀에서는 기울기 $w_1$과 절편 $w_0$을 회귀 계수로 지칭하고 구한다. 아래 그래프는 생선의 길이와 무게 데이터로 선형 회귀선을 구해 본 것이다. 다항 선형 회귀(Polynomial Regress.. 2022. 12. 19.
[ML] Encoding : Label & One Hot 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. 데이터 인코딩 머신러닝을 위한 대표적인 인코딩 방식 : 레이블 인코딩(Label Encoding) & 원-핫 인코딩(One Hot Encoding) 레이블 인코딩은 범주형 데이터의 피처를 unique한 코드형 숫자값으로 변환하는 방식 원-핫 인코딩은 피처 값의 유형에 따라 새로운 피처를 추가해 고유 값에 해당하는 컬럼에만 1을 표시하고 나머지 컬럼에는 0을 표시하는 방식 레이블 인코딩 Scikit Learn의 LabelEncoder 클래스로 구현 from sklearn.preprocessing import LabelEncod.. 2022. 12. 16.
[ML] Data Pre-processing : Scaling 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. Data Scaling 데이터 전처리 과정 중 하나인 데이터 스케일링을 다룹니다. 데이터 간의 거리에 영향을 받는 알고리즘을 사용할 때, 특성들의 스케일이 차이가 많이 나면 머신러닝 모델이 잘 작동하지 않을 수 있습니다. 이때, 데이터의 스케일을 일정한 기준으로 맞춰 주는 방법으로 Data Scaling 을 하게됩니다. 대표적인 Scaling 개념 Standardization(표준화) 특성들의 평균을 0, 분산을 1로 스케일링 표준점수(z-Score)를 활용해 Numpy로 표준화하기 mean = mp.mean(train_in.. 2022. 12. 16.
[ML] KNN(K-Nearest Neighbor) K-최근접 이웃(KNN) 지도 학습 알고리즘 중 하나, 굉장히 직관적이고 간단하다. 어떤 데이터가 주어지면 그 주변(이웃)의 데이터를 살펴본 뒤 더 많은 데이터가 포함되어 있는 범주로 분류하는 방식 KNN은 분류와 회귀 문제 둘다 사용할 수 있다. KNN Classification 새로운 데이터(빨간 점) 이 주어졌을 때 이를 A로 분류할지, B로 분류할지 판단하는 문제 k=3(안쪽 원)일 때, 노란색 점(Class A) 1개와 보라색 점(Class B) 2개가 있다. 따라서 k=3일 때 빨간 점은 B로 분류 된다. k=6(바깥쪽 원)일 때, 노란색 점 4개와 보라색 점 2개가 있으므로 노란색 점으로 분류된다. K의 값에 따라 결과가 달라지므로 너무 작아서도 안되고 너무 커서도 안된다. 보통 K 값은 홀.. 2022. 12. 12.
[OpenCV] Error : Can't parse 'center'. Sequence item with index 0 has a wrong type OpenCV 를 이용하여 Face alignment 를 진행하는 도중에 발생한 오류 Github 코드 GitHub - Byeon-MJ/Computer_Vision_Project Contribute to Byeon-MJ/Computer_Vision_Project development by creating an account on GitHub. github.com 두 눈을 중앙점으로 두 눈 사이의 중앙점을 구해서 회전하기위해 getRotationMatrix2D 메소드를 사용하였는데 아래 에러가 발생하였다. rotate = cv2.getRotationMatrix2D(eyes_center, degree, scale) TypeError: Can't parse 'center'. Sequence item with i.. 2022. 12. 9.
[ML] 지도 학습, 비지도 학습, 강화 학습 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. 머신 러닝(Machine Learning) - 머신러닝은 데이터를 사용하여 기계가 스스로 학습하는 방식 - 머신러닝의 학습 방법에 따라 지도 학습, 비지도 학습, 강화 학습으로 구분할 수 있다. 출처 https://wendys.tistory.com/169 지도 학습(Supervised Learning) 지도 학습은 데이터 중에서도 정답이 있는 데이터를 이용하여 학습 정답이란 데이터에 레이블(Label)이란 이름으로 가지고 있다. 정답이 있는 데이터를 인공지능에 입력하여 학습시키면 인공지능은 여러 장의 사진 중에서도 해당 정답.. 2022. 12. 9.
[OpenCV] BRG 이미지를 RGB 이미지로 변환하기 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. 시각화/OpenCV 짤막 지식 저장된 이미지를 파이썬에서 OpenCV를 사용해서 불러오면 기존 이미지와 색이 바뀌게 된다. import cv2 img_data = cv2.imread('fig1.jpg') # 이미지를 화면에 출력 plt.imshow(img_data) plt.grid(False) plt.axis('off') plt.show() 색이 바뀌어 보이는 이유는, 컬러 사진의 경우 OpenCV에서는 'BRG' 순으로 저장을 하는데 matplotlib 에서는 'RGB' 순으로 색을 저장하기 때문이다. 따라서 BRG를 RG.. 2022. 12. 9.