본문 바로가기

DataScience/MachineLearning21

딥러닝 Transfer Learning 이란 (코드없음 진행순서만) 딥러닝 모델의 정확도를 높이기 위해선 대학원 이상의 전문지식을 요한다. 따라서 응용프로그래머는 잘 만들어진 검증된 모델을 가져다 쓴다는 개념이 Transfer Learning 이라고 한다. 사용법은 사이드바 딥러닝 부분에 자세히 설명해놓았기 때문에, 여기선 전체적인 그림만 그린다 1. 필요한 라이브러리를 임포트 2.Building the model (Loading the pre-trained model) 학습이 잘 된 모델의 베이스 모델만 가져온다.(헤드모델은 빼고) 3. Freezing the base model 가져온 베이스 모델 부분은 이미 특징을 잘잡게 학습되어있기 때문에 재학습 하지않도록 사전작업을 하는것 4.Defining the custom head for our network 내 문제에 맞.. 2023. 1. 2.
딥러닝 텐서플로우 CNN 구조, pooling, 파이썬으로 압축파일 풀기, JPG나PNG 같은 이미지파일을 학습 데이터로 만드는 방법, 파이썬 각 폴더에 저장되어 있는 사진파일이름들 출력 1. CNN구조 결론부터 말하면 : 사진의 특징을 잡아서 압축하는 개념 이미지는 행과 열로 이루어져있다 예시 (28, 28) 그래서 Gray(1차원) 이미지 같은경우는 Flatton()만 사용해서 학습을 시키면 되지만. 컬러이미지는 R, G ,B 3장으로 이루어진것과 같다.(3차원 이라는것) (28, 28, 3) 그렇기에 변환 과정을 거쳐야 한다. 과정은 kernel 로 image에 stride 만큼 feature map으로 만들어 (Convolution + ReLu) (변환) MAX or Average 로 stride만큼 Pooling (Downsampling) 해서 Flattening 하는것 (압축) 2. 파이썬으로 압축파일 푸는방법 import zipfile file = zipfile.ZipFile.. 2022. 12. 30.
딥러닝 텐서플로우 레이블링된 y값을 tf.keras.utils.to_categorical 함수 이용해서 원핫인코딩으로 바꾸기, 분류의 문제에서, loss 함수를 categorical_crossentropy로 설정할때는 어떤상황일때? 1.레이블링된 y값을 tf.keras.utils.to_categorical 함수 이용해서 원핫인코딩으로 바꾸기 from keras.utils import to_categorical y_train [out] array([5, 0, 4, ..., 5, 6, 8], dtype=uint8) y_train = tf.keras.utils.to_categorical(y_train, num_classes = 10) [out] array([[0., 0., 0., ..., 0., 0., 0.], [1., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.],.. 2022. 12. 29.
딥러닝 텐서플로우 모델을 저장하는방법, 모델중 네트워크와 웨이트를 따로 저장하고 불러오는 방법 Saving the architecture # ANN == 아티피셜 뉴럴 네트워크 # 전체 네트워크(build_model())와 웨이트(선==w==가중치)를 통으로 저장하고 불러오기 # 폴더구조로 저장. model.save('fashion_mnist_model') # 저장된 인공지능을 불러오는 코드. model2 = tf.keras.models.load_model('fashion_mnist_model') model2.evaluate(X_test, y_test) # 모델을, 파일 하나로 저장하는 방법 model.save('fashion_mnist_model.h5') # 파일을 불러오기 model3 = tf.keras.models.load_model('fashion_mnist_model.h5') model3.. 2022. 12. 29.
딥러닝 텐서플로우 Flatten()을 사용하지않는, validation_data 파라미터 split 과의 차이, Dropout이란 1. Flatten() 라이브러리 없이 이미지 평탄화 하는방법 예시) X_train.shape # 3차원 (60000, 28, 28) X_train = X_train.reshape(60000, 784) # 평탄화 // 2차원 마찬가지로 X_test도 reshape을 이용한다 . 모델링 예시) def build_model() : model = Sequential() model.add( Dense(128, 'relu', input_shape=(784, ) ) ) model.add( Dropout(0.2) ) # 학습할때 20프로의 선을 없애라는뜻 (이부분만) model.add( Dense(64, 'relu')) model.add( Dense(10, 'softmax')) model.compile('adam',.. 2022. 12. 29.
딥러닝 텐서플로우 softmax, overfitting, callbacks 지난 10개분류문제 예시글에 이은 추가내용 1. softmax로 나온결과를, 레이블 인코딩으로 바꾸는 방법 softmax는 텐서플로우의 모델을 만들때, 마지막 레이어, 즉 아웃풋 레이어의 수가 3개 이상일때 사용한다 만약 아웃풋의 노드가 10개라고 한다면 10개를 비교해서 최종값을 결정해야 하는데 소프트맥스는 거기에 최적화 되있기 때문이다. 소프트 맥스는 총합이 1이되는 즉 0.1, 0.2, 0.7... 형태로 나온다 그럼 여기서 가장큰 값 0.7이 최종값이 되는것이다 . 2. 에포크, 학습데이터/밸리데이션데이터와 오버피팅 에포크는 학습을 시킬 횟수를 의미한다 . 그렇다고 에포크가 너무 많아도 문제가 될수있다. 에포크를 많이하면 이미 알고있는 문제는 잘 맞추지만 새로운 데이터가 들어오면 오히려 못맞추게 되는 문제가 발생한다. 그것이 오버피팅이다... 2022. 12. 29.
딥러닝에서 leaning rate, validation, EarlyStopping 을 사용하는 이유에 대해 지난 내용에 대한 추가설명 leaning rate 을 설정 하는 이유 leaning rate이 크게되면 보폭이 커져서 오차의 최소점을 넘어가는 오류를 범하게되고 (마지막차트) leaning rate이 작으면 오래걸리는 문제가 발생(시스템자원낭비) 하기때문에 (첫번째차트) 차트 중앙과 같이 적절한 leaning rate 을 설정 하는게 중요하다. validation(밸리데이션) 이란 무엇인가( 파라미터 validation_split=0.2 ) Epoch가 한번 끝날때 마다, 학습에 사용하지 않은 데이터로 시험을 보는 것을 말한다. 그럼 학습에 사용하지 않은 데이터는 어디서 얻을수 있느냐, 기존에 있던 X_trian, y_train 에서 validation_split=0.2 , 즉 학습할 데이터를 20퍼로 다시 나눠서 사용하는 방법이.. 2022. 12. 28.
Machine [unsupervised{Clustering(Hierarchical)}] (계층적, 병합적 군집)agglomerative Hierarchical Clustering¶ Library 임포트¶ In [1]: import numpy as np import matplotlib.pyplot as plt import pandas as pd In [ ]: In [ ]: dataset 읽어오기¶ In [3]: df = pd.read_csv("../data/Mall_Customers.csv") In [4]: df Out[4]: CustomerID Genre Age Annual Income (k$) Spending Score (1-100) 0 1 Male 19 15 39 1 2 Male 21 15 81 2 3 Female 20 16 6 3 4 Female 23 16 77 4 5 Female 31 17 40 ... ... ... ... ..... 2022. 12. 5.
Machine [unsupervised{Clustering(K-means)}] (평할/분할 기반의 군집) In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as plt # 비슷한 성향끼리 묶는작업 In [4]: df = pd.read_csv("../data/Mall_Customers.csv") In [5]: df.head() Out[5]: CustomerID Genre Age Annual Income (k$) Spending Score (1-100) 0 1 Male 19 15 39 1 2 Male 21 15 81 2 3 Female 20 16 6 3 4 Female 23 16 77 4 5 Female 31 17 40 In [6]: df.isna().sum() Out[6]: CustomerID 0 Genre 0 Age 0 Annua.. 2022. 12. 5.
Machine [supervised{Classification(Decision Tree)}], 인공지능을 서버에서 불러올때 간략 In [88]: # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd In [89]: df = pd.read_csv('../data/Social_Network_Ads.csv') In [90]: df Out[90]: User ID Gender Age EstimatedSalary Purchased 0 15624510 Male 19 19000 0 1 15810944 Male 35 20000 0 2 15668575 Female 26 43000 0 3 15603246 Female 27 57000 0 4 15804002 Male 19 76000 0 ... ... ... ... ..... 2022. 12. 2.
Machine 유방암 데이터 분석 Grid search 활용, svm,corr(),heatmap In [26]: # import libraries import pandas as pd # Import Pandas for data manipulation using dataframes import numpy as np # Import Numpy for data statistical analysis import matplotlib.pyplot as plt # Import matplotlib for data visualisation import seaborn as sb # Statistical data visualization # %matplotlib inline In [2]: from sklearn.datasets import load_breast_cancer In [4]: cancer = load_bre.. 2022. 12. 2.
Machine [supervised{Classification(K-Nearest Neighbor)}] In [1]: import pandas as pd In [3]: df = pd.read_csv("../data/Social_Network_Ads.csv") In [4]: df Out[4]: User ID Gender Age EstimatedSalary Purchased 0 15624510 Male 19 19000 0 1 15810944 Male 35 20000 0 2 15668575 Female 26 43000 0 3 15603246 Female 27 57000 0 4 15804002 Male 19 76000 0 ... ... ... ... ... ... 395 15691863 Female 46 41000 1 396 15706071 Male 51 23000 1 397 15654296 Female 50 2.. 2022. 12. 2.