👩‍💻LEARN : ML&Data 91

[알고리즘 구현으로 배우는 선형대수] #2. 행렬

numpy로 간단하게...array 선언해서 행렬연산하던 내게.. 파이썬으로 하나하나 구현해보게 하는... 참 가르침을...주시는 단원...💡 #2. 행렬 (이라 쓰고 행렬 연산에 대한 걸 파이썬으로 구현해보기라고 읽는다) 2.1 스칼라 크기 만으로 나타낼 수 있는 물리량. 쉽게 말해 ‘숫자 하나’ 로 표현되는 것 2.2 벡터 크기와 방향을 모두 나타내는 개념으로, 스칼라의 집합이며 행렬을 구성하는 기본 단위 크기와 방향이 같다면 그래프 상 위치와 상관 없이 동일한 벡터로 간주 파이썬 버전으로 #벡터 덧셈 함수로 만들기 def v_add(u,v): n=len(u) w=[] for i in range(0,n): val = u[i]+v[i] w.append(val) return w v_add(u,v) #벡터..

[알고리즘 구현으로 배우는 선형대수] #1. 선형대수를 위한 기초 파이썬

#1. 선형대수를 위한 기초 파이썬 선형대수에 필요한 내용 위주로만 정리해보았다. 1.1 복사 ✔️ 객체의 복사 : 행렬을 다룰 때 리스트 자료형을 복사하는 경우에 적용 종류 : 얕은 복사, 깊은 복사 방법 차이 : 객체의 종류에 따라 복사 방법에 차이가 생김 ✔️ 객체의 종류 mutable(id 변경 가능) : 리스트 immutable(id 변경 불가능) : 숫자, 문자 1.2 얕은 복사 서로 다른 객체의 변경이 서로에게 영향을 끼치지 않도록 하는 것 얕은 복사 방법 1. 리스트 슬라이싱 사용하기 a = [1,2,3,4,5] b = a[:] #얕은 복사를 이용하여 리스트a를 b에 할당하는 코드 print(id(a),id(b), id(a[0]), id(b[0])) 140603143313408 140602..

[다시 미분 적분] #총정리

마지막 출근일 이후, 정신없는 저녁 약속을 다니다가 계획했던 일정에서 +2일이 되어버렸다 (눈물) 그래도...7차 교육과정 문과생 주제에 미적분을 어느정도 이해는 하게 된 것 같다. 뿌듯. 아래엔 다시 미분적분 책을 보면서 정리한 내용들이다. 수식이 많아서 latex 사용이 어려운 티스토리가 아니라 그냥 아이패드에 끄적거리며 정리해버렸다. 결국 중요한건 꺾이지 않는 마음 미분 - 순간의 기울기를 구하는 것 적분 - 해당 기울기에서의 넓이를 구하는 것. 미분을 잘 이해하면 적분은 쉽다.

[모두의 딥러닝] #5-21. 설명가능한 딥러닝 (CAM, 오클루전)

왜 이렇게 분류하게 되었는지 이유를 알기 위해서 시작되었다는 CAM과 오클루젼... 하지만 저는 설명 없어도 괜찮을거같아요 정말루...흑흑... 이해된거같다가 정리하려고 보면 다시 이해가 안되는 일들의 연속 ㅇㅅ 각 중간맵마다의 가중치를 알 수 있음 이 가중치를 중간맵에 곱해서 히트맵을 만들 수 있음 이게 맞나...? 한번 더 찾아봐야겠다..책에선 이정도가 최선이었음.. 2. 오클루전 이미지의 일부를 가리면서 가려진 부분이 결과에 얼마나 영향을 미치는 지 계산하는 방식 3. 실습 !pip install tf-explain from tensorflow.keras.preprocessing.image import load_img, img_to_array from tensorflow.keras.applicati..

[모두의딥러닝] #5-20. 전이학습

깜박했다. 내가 쉽게 질리는 스타일이라는 것을... 초반에 새로운 지식을 받아들일 땐 즐겁고 재밌는데, 뒤로 갈수록 모델에 대한 설명은 적어지고 반복된 코딩만 하다보니 지루해졌다... 그래서 빨리 모두의 딥러닝을 끝내야한다. 오늘안에 끝낸다앜 #5-20. 전이학습 상당히 신기한 것이, 교육학에서 사용하는 단어들이 딥러닝에서도 종종 나타난다. 전이도... 학습전이라고들 많이 하는데... 신기방기동방신기! 1. 소규모 데이터셋으로 만드는 학습 모델 데이터 수가 적을 땐, 해당 데이터를 반전시키거나 수평 수직으로 뒤집는 등 이미지 변형을 통해 데이터 학습양을 늘릴 수 있음 데이터부풀리기 시 이미지의 형태를 생각해서 변형을 취해야 함 데이터 부풀리기는 학습셋에만 적용해야 함 ImageDataGenerator()..

[모두의 딥러닝] #5-19. GAN

#5-19. GAN [GAN(Generative Adversial Networks)] 생성자(Generator) : 진짜에 가까워보이는 이미지를 생성 판별자(Discriminator) : 생성자가 만든 이미지를 진짜인지 아닌지 판별. 판별자의 정확도가 0.5에 달하면 생성자의 학습은 종료된다. 기존의 GAN은 불안정한 모델으로 GAN에 컨볼루션 신경망을 적용한 DCGAN을 사용한다. 1. 생성자 먼저 랜덤한 픽셀값으로 채워진 가짜 이미지를 생성한다. 판별자의 판별 결과에 따라 지속적으로 업데이트 하여 원하는 이미지를 만들어 간다. DCGAN에서 생성자를 다룰 시 컨볼루션신경망 사용에 주의해야 할 점 옵티마이저를 사용하는 최적화 과정과 컴파일과정이 없다 model.compile(~ optimizer='ad..

[모두의 딥러닝]#5-18. 순환신경망 (RNN)

#5-18. 순환신경망 (RNN) 1. 순환신경망이란 무엇인가 문장을 이해하기 위해서는 여러개의 단어의 순서를 고려하여 인식해야함. 즉 단어의 입력 순서도 고려해야 하는 부분이 됨. 이에 순환신경망은 앞서 입력받은 데이터를 기억해두고, 이 데이터의 중요도를 판단한 후 가중치를 주고 다음 데이터로 넘어감. e.g. '오늘 네이버 주가는 얼마야?' -> 오늘 // 네이버 // 주가 // 얼마야 ?? -> 앞에 입력된 값에 따라 뒤의 입력값에 영향을 줌 2. 순환신경망과 LSTM(Long short term memory) RNN의 한계 (한 층에서 반복을 많이 함 -> 일반 신경망 보다 기울기 소실이 많이 발생하고 해결하기 어려움)를 해결하기 위해 LSTM을 적용하여 반복되기 직전에 기억된 값을 넘길지 여부를..

[모두의 딥러닝] #5-17. 자연어 처리

#5-17. 자연어 처리 단계 1. 텍스트 토큰화 2. 단어의 원-핫 인코딩 3. 단어 임베딩 (차원 줄이기) 4. 텍스트 긍정/부정 예측하기 우선 실습하면서 추가적으로 설명을 서술하겠다뤼. from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Flatten, Embedding from tensorflow.keras.utils import to_categorical from num..

[모두의 딥러닝] #5-16. 컨볼루션 신경망 (CNN)

입력된 이미지의 특징을 잘 추출해서 인식하기 위한 방법이 바로 컨볼루션 신경망...! 어려워 보이지만 얘 또한 개념이 어려운건 아니고, 행렬 기준으로 구획화를 특정한 방식으로 진행하며 특징을 잡아내는거가 메인이다. #5-16. 컨볼루션 신경망 (CNN) 이미지 인식 방법 (w/MNIST) #먼저 손글씨 데이터를 keras에서부터 가져오고, 기존에 할당된대로 train, test 데이터로 분류한다. from tensorflow.keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() print("학습셋 이미지수: %d개" % (X_train.shape[0])) print("테스트셋셋 이미지수: %d개" % (X_..

[모두의 딥러닝] #4-15. 실제 데이터로 만들어보는 모델 (선형회귀)

이제는 실전이다 ! 그동안은 y가 모두 범주형이라 binary, categorical을 썼지만 이번엔 집값예측이라 선형회귀로 모델을 구성해야한다. 지금까지 배운 내용의 총 집합이라 코드를 아래에 서술하고 필요한 내용만 별도로 맨 밑에 빼서 서술해놓겠다. #데이터 전처리 import pandas as pd !git clone https://github.com/taehojo/data.git df = pd.read_csv("./data/house_train.csv") df.isnull().sum().sort_values(ascending=False).head(20) #컬럼 별 null 개수를 합하고 큰 수 부터 위로 올렸다 PoolQC 1453 MiscFeature 1406 Alley 1369 ... Elec..