ML 25

19장) 세상에 없는 얼굴 GAN

1.생성적 적대 신경망(GAN, Generative Adversarial Networks) 딥러닝의 원리를 활용해 가상의 이미지를 생성하는 알고리즘 예를 들어 얼굴을 만든다면, 이미지 픽셀들이 어떻게 조합되어야 우리가 생각하는 얼굴의 형상이 되는지를 딥러닝 알고리즘이 예측한 결과가 나옴 적대적(adversarial) 진짜 같은 가짜를 만들기 위해 GAN 알고리즘 내부에서 적대적 경합을 진행 생성자(Generator) 가짜를 만들어 내는 파트 판별자(Discriminator) 진위를 가려내는 파트 DCGAN(Deep Convolutional GAN) 페이스북의 AI 연구팀이 만든 GAN 알고리즘으로, 초기의 GAN을 보완한 알고리즘 2. 생성자 가상의 이미지를 생성 처음엔 랜덤한 픽셀 값으로 채워진 가짜 ..

18장) 시퀀스 배열로 다루는 순환 신경망(RNN)

인공지능이 문장을 듣고 이해한다는 것 여러 데이터가 순서와 관계없이 입력되던 것과는 다르게 과거에 입력된 데이터와 나중에 입력된 데이터 사이의 관계를 고려해야 하는 문제가 발생 순환 신경망을 통해 해결 1. RNN(Recurrent Neural Network) 1)RNN 여러 개의 데이터가 순서대로 입력되었을 때 앞서 입력받은 데이터를 잠시 기억해 놓는 방법 기억된 데이터의 중요도를 판별하여 별도의 가중치 부여한 후 다음 데이터로 이동 이 작업을 반복하기 때문에 다음 층으로 넘어가기 전에 같은 층을 맴도는 것처럼 보여서 RNN이라 부름 Ex) "오늘 주가가 몇이야?" 앞에 나온 입력에 대한 결과가 뒤에 나오는 입력 값에 영향을 미침 이를 통해 비슷한 두 문장이 입력되었을 때 그 차이를 구별하여 출력 값에..

17장) 딥러닝을 이용한 자연어 처리

자연어란 우리가 평소에 말하는 음성이나 텍스트를 의미 자연어 처리는 이러한 음성이나 텍스트를 컴퓨터가 인식하고 처리하는 것 1. 텍스트의 토큰화 토큰(token) 텍스트를 단어 별이나 문장 별, 형태소별로 나눈 하나의 단위 토큰화(tokenization) 입력된 텍스트를 잘게 나누는 과정 케라스의 text 모듈의 text_to_word_sequence()를 사용해 토큰화 from tensorflow.keras.preprocessing.text import text_to_word_sequence # 전처리할 텍스트를 정합니다. text = '해보지 않으면 해낼 수 없다' # 해당 텍스트를 토큰화합니다. result = text_to_word_sequence(text) print("\n원문:\n", text..

16장) 이미지 인식의 꽃, CNN 익히기

1. 컨볼루션 신경망(CNN) 입력된 이미지에서 다시 한번 특징을 추출하기 위해 커널(슬라이딩 윈도우)을 도입하는 기법 입력된 이미지가 다음과 같을 때 각 칸에 가중치가 들어있는 2x2 커널을 준비 커널을 이미지에 한 칸씩 움직이며 적용 결과를 정리하면 다음과 같다. 이렇게 해서 새롭게 만들어진 층을 컨볼루션(합성곱)이라고 부름 컨볼루션을 통해 입력 데이터로부터 더욱 정교한 특징을 추출 가능 케라스에서 컨볼루션 층을 추가하는 코드 model.add(Conv2D(32, kernel_size=(3,3), input_shape=(28, 28, 1), activation='relu')) Conv2D() 첫 번째 매개변수 커널을 몇 개 적용할 것인지 결정 예제에서는 32개의 커널 적용 kernel_size=(행,..

15장) 선형 회귀 적용하기

1. 데이터 확인하기 import pandas as pd df=pd.read_csv('C:/Users/kang mingu/dataset/housing.csv',delim_whitespace=True, header=None) print(df.info()) 총 샘플의 수: 506개 13개의 속성과 1개의 클래스 속성 0: CRIM(인구 1인당 범죄 발생 수) 1: ZN(25,000평방 피트 이상의 주거 구역 비중) 2:INDUS(소매업 외 상업이 차지하는 면적 비율) 3: CHAS(찰스강 위치 변수(1-강 주변,0-이외)) 4: NOX(일산화질소 농도) 5: RM(집의 평균 방 수) 6: AGE(1940년 이전에 지어진 비율) 7: DIS(5가지 보스턴 시 고용 시설까지의 거리) 8: RAD(순환고속도로의 ..

14장) 베스트 모델 만들기

1. 데이터의 확인과 실행 import pandas as pd # 데이터 입력 df_pre = pd.read_csv('C:/Users/kang mingu/dataset/wine.csv', header=None) df = df_pre.sample(frac=1) print(df.head(5)) sample() 원본 데이터에서 정해진 비율만큼 랜덤으로 뽑아오는 함수 frac=1 이라고 지정하면 원본 데이터의 100%를 불러오라는 의미 print(df.info()) 총 6479개의 샘플, 13개의 속성이 있는 것을 확인 속성 0: 주석산 농도 1: 아세트산 농도 2: 구연산 농도 3: 잔류 당분 농도 4: 염화나트륨 농도 5: 유리 아황산 농도 6: 총 아황산 농도 7: 밀도 8: pH 9: 황산칼륨 농도 10..

13-2장) 모델 저장과 재사용

1. 모델 저장과 재사용 학습이 끝난 후 테스트해 본 결과가 만족스러울 때 이를 모델로 저장하여 새로운 데이터에 사용 가능 1) 학습 결과 모델로 저장하기 from keras.models import load_model model.save('my_model.h5') 2) 저장한 모델 불러오기 model=load_model('my_model.h5') Code) from keras.models import Sequential, load_model from keras.layers.core import Dense from sklearn.preprocessing import LabelEncoder import pandas as pd import numpy import tensorflow as tf # seed 값..

13-1장) 과적합 피하기

1. 데이터의 확인과 실행 import pandas as pd # 데이터 입력 df = pd.read_csv('C:/users/kang mingu/dataset/sonar.csv', header=None) # 데이터 개괄 보기 print(df.info()) 총 샘플의 수는 208개 컬럼 수가 61개 60개의 속성 1개의 클래스 from keras.models import Sequential from keras.layers.core import Dense from sklearn.preprocessing import LabelEncoder import pandas as pd import numpy import tensorflow as tf # seed 값 설정 numpy.random.seed(3) tf.ra..