본문 바로가기

ML,DL

(10)
[DL] SRGAN : 이미지 화질 개선 SGRAN이미지의 화질을 개선하기 위한 GAN 모델의 일종일반적인 GAN에는 없는 특징 추출기가 있어, 생성자가 감별자를 속임과 동시에, 진짜 이미지와 비슷한 특징을 갖도록 학습됨GAN 손실 : 감별자를 속이기 위한 손실콘텐츠 손실 : 생성자가 더 자연스러운 이미지를 생성하기 위한 손실학습 과정학습용 데이터셋 만들기사용하는 데이터셋 https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html!unzip '/content/drive/MyDrive/Colab Notebooks/PLAYDATA_수업/img_align_celeba.zip' -d GAN평균, 표준편차 구하기imgs = glob.glob("./GAN/img_align_celeba/*.jpg")import numpy..
[DL] 인공 신경망 - 심층 신경망(렐루 함수, Flatten) 2개의 층 from tensorflow.keras.layers import Dense # 층 from tensorflow.keras import Sequential # 모델생성 from tensorflow.keras.datasets import fashion_mnist # 데이터 불러오기 (X_train,y_train),(X_test,y_test) = fashion_mnist.load_data() # 전처리 X_train_scaled = (X_train / 255.0).reshape(-1,28*28) X_test_scaled = (X_test / 255.0).reshape(-1,28*28) 이미지의 픽셀값을 0~255 범위에서 0~1 사이로 변환, 28*28 크기의 2차원 배열을 1차원 배열로 펼치기 d..
[DL] 인공 신경망 - 단일 신경망 Dense 층을 구성, 입력데이터모양, 활성화 함수, 출력뉴런의 개수 Sequence로 층을 연결 model = keras, Sequencial(dense) compile : 손실함수, 평가방법 model.compile(loss= , metrics='acc') 학습 : fit, 에포크수 model.fit(x,y,epochs=50, validation_data=(XX_val, yy_val)) 1. 딥러닝으로 패션 데이터 분류하기 keras.datasets를 통해 패션 데이터를 불러온다. from tensorflow import keras (X_train, y_train),(X_test, y_test) = keras.datasets.fashion_mnist.load_data() 이 데이터는 이미지 데이터들이..
[ML] 트리의 앙상블 정형 데이터와 비정형 데이터 정형 데이터 : csv, 데이터베이스, 엑셀에 저장하기 쉬운 어떤 구조로 이루어진 데이터 비정형 데이터 : 이와 반대되는 데이터 정형 데이터를 다루는 데 가장 뛰어난 성과를 내는 알고리즘 : 앙상블 학습 1. 랜덤 포레스트 Random Forest 결정 트리를 랜덤하게 만들어 결정 트리의 숲을 만듦, 그리고 각 결정 트리의 예측을 사용해 최종 예측을 만든다 각 트리를 훈련하기 위해 우리가 입력한 훈련 데이터에서 랜덤하게 샘플을 추출하여 훈련 데이터를 만든다 이렇게 만들어진 샘플 : 부트스트랩 샘플 각 노드를 분할할 때 전체 특성 중에서 일부 특성을 무작위로 고른 다음 이 중에서 최선의 분할을 찾음 장점 랜덤하게 선택한 샘플과 특성을 사용하기 때문에 훈련 세트에 과대적합 되는 ..
[ML] 확률적 경사 하강법 확률적 경사 하강법 전체 샘플을 사용하지 않고 딱 하나의 샘플을 훈련 세트에서 랜덤하게 골라 가장 가파른 길을 찾아 조금씩 내려오는 방법 에포크 epoch 그다음 훈련 세트에서 랜덤하게 또 다른 샘플을 하나 선택하여 경사를 조금 내려간다. 이런 식으로 전체 샘플을 모두 사용할 때까지 계속한다. 훈련 세트를 모두 사용했다면 훈련 세트에 모든 샘플을 다시 채워 넣는다. 이렇게 확률적 경사 하강법에서 훈련 세트를 한 번 모두 사용하는 과정 = 에포크 미니배치 경사 하강법 1개씩이 아닌 무작위로 여러개의 샘플을 선택해서 경사 하강법을 수행하는 방식 배치 경사 하강법 전체 샘플을 사용하는 방법 전체 데이터를 사용하기 때문에 가장 안정적인 방법이 될 수 있으나, 그만큼 컴퓨터 자원을 많이 사용하게 된다. 손실 함수..
[ML] 로지스틱 회귀 Logistic Regression 로지스틱 회귀는 이름은 회귀이지만 분류 모델이다. 이 알고리즘은 선형 회귀와 동일하게 선형 방정식을 학습한다. 선형 방정식의 결과가 0 ~ 1 사이의 확률이 되어야 하므로 시그모이드 함수를 사용한다. 시그모이드 함수 sigmoid function 선형 방정식의 출력 z의 음수를 사용해 자연 상수 e를 거듭제곱하고 1을 더한 값의 역수를 취한다. z가 무한하게 큰 음수일 때 -> 0에 가까워지고, z가 무한하게 큰 양수가 될 때 -> 1에 가까워짐 import numpy as np import matplotlib.pyplot as plt # 로지스틱함수(시그모이드 함수) def sigmoid(z): return 1 / (1 + np.exp(-z)) z = np.arange(-5,5,0.1) sigmoid_..
[ML] Ridge, Lasso Regression 선형 회귀 모델에 규제를 추가한 모델 릿지와 라쏘 모델을 사용할 때 alpha 매개변수로 규제의 강도를 조절 alpha 값이 크면 규제 강도가 세지므로 계수 값을 더 줄이고 조금 더 과소적합되도록 유도 alpha 값이 작으면 계수를 줄이는 역할이 줄어들고 선형 회귀 모델과 유사해짐 -> 과대적합될 가능성이 큼 릿지 회귀 Ridge 계수를 제곱한 값을 기준으로 규제를 적용 from sklearn.linear_model import Ridge, Lasso poly = PolynomialFeatures(degree=10) perch_full_ss_poly = poly.fit_transform(perch_full_ss) X_train, X_test, y_train, y_test = train_test_split..
[ML] 다중 회귀 multiple regression 다중 회귀 여러 개의 특성을 사용한 선형 회귀 특성 공학 : 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업 데이터 변환 PolynomialFeatures # 특성 추가 from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) poly.fit([[2,3]]) # 적용 poly.transform([[2,3]]) # 데이터 변환 2개의 특성을 가진 샘플 [2,3]이 6개의 특성을 가진 샘플 [1., 2., 3., 4., 6., 9.] 로 변환됨 기본적으로 각 특성을 제곱한 항을 추가하고 특성끼리 서로 곱한 항을 추가함 include_bias = False 사이킷런의 선형 모델은 자동으로 절편을 추가함 절편..