https://wingnim.tistory.com/47

 

U-Net 논문 내용 정리 및 설명

이번에 정리할 논문은 의료 영상/이미지 segmentation에서 많이 쓰이는 모델 구조의 시초가 된 U-Net : Convolutional Networks for Biomedical Image Segmentation 이다. U Net 은 , 단순히 이미지를 classificat..

wingnim.tistory.com

https://mylifemystudy.tistory.com/87

 

U-Net 정리 (U-Net: Convolutional Networks for Biomedical Image Segmentation)

U-Net: 바이오메디컬 이미지 세그멘테이션을 위한 컨볼루셔널 네트워크 메디컬 이미지 Segmentation 관련해서 항상 회자되는 네트워크 구조가 U-Net 이다. End-to-End 로 Segmentation하는 심플하고 효과적인 방법..

mylifemystudy.tistory.com

https://dacon.io/competitions/official/235591/codeshare/915?page=1&dtype=recent

 

AI프렌즈 시즌2 위성관측 활용 강수량 산출 대회

출처 : DACON - Data Science Competition

dacon.io

dacon  강수량 산출 대회

 

https://www.quantumdl.com/entry/%EB%94%A5%EB%9F%AC%EB%8B%9D%EC%9D%84-%EC%9C%84%ED%95%9C-Atrous-Convolution%EA%B3%BC-UNet-%EA%B5%AC%EC%A1%B0-%EA%B0%84%EB%9E%B5%ED%95%9C-%EC%97%AD%EC%82%AC

 

딥러닝을 위한 Atrous Convolution과 U-Net 구조: 간략한 역사

원문: Atrous Convolutions and U-Net Architectures for Deep Learning: A Brief History https://blog.exxactcorp.com/atrous-convolutions-u-net-architectures-for-deep-learning-a-brief-history/ 딥러닝의..

www.quantumdl.com

 

 

object detection 관련 링크

https://bskyvision.com/465?category=615305

 

물체 검출 알고리즘 성능 평가방법 AP(Average Precision)의 이해

물체 검출(object detection) 알고리즘의 성능은 precision-recall 곡선과 average precision(AP)로 평가하는 것이 대세다. 이에 대해서 이해하려고 한참을 구글링했지만 초보자가 이해하기에 적당한 문서는 찾기..

bskyvision.com

 

'Data Anaylsis > Deep Learning' 카테고리의 다른 글

keras ImageDataGenerator  (0) 2020.03.20
딥러닝 3일차  (0) 2020.03.18
딥러닝 2일차  (0) 2020.03.17
Keras 모델 생성/학습 - 당뇨병 예측 모델  (0) 2020.03.16
AND,OR/XOR 문제 keras로 구현!  (0) 2020.03.16

로컬에 있는 데이터 가져오기!

train_generator = image_datagen.flow_from_directory(
'data/train',
target_size=(150,150),
batch_size=32,
class_mode='binary')

test_generator = image_datagen.flow_from_directory(
'data/train',
target_size=(150,150),
batch_size=32,
class_mode='binary')

 

 

DATA Augmentation / 데이터 부풀리기!

from keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator(rotation_range=40,
                             width_shift_range=0.2,
                             height_shift_range=0.2,
                             rescale=1./255,
                             shear_range=0.2,
                             zoom_range=0.2,
                             horizontal_flip=True,
                             fill_mode='nearest')

 

'Data Anaylsis > Deep Learning' 카테고리의 다른 글

U-net 링크  (0) 2020.04.27
딥러닝 3일차  (0) 2020.03.18
딥러닝 2일차  (0) 2020.03.17
Keras 모델 생성/학습 - 당뇨병 예측 모델  (0) 2020.03.16
AND,OR/XOR 문제 keras로 구현!  (0) 2020.03.16

왜 loss가 떨어지는데 accuracy가 줄어들지 않는가?

scaling

fit, transform

regression의 성능지표

classification의 성능지표

스팸메일 분류 / 세포 비 정상,정상 분류

K-fold Cross Validation

 

모델이 학습되고있는과정을 조금더 객관적으로 보기 위해서.

 

k값은 5나 10(5등분 또는 10등분)으로 나누는 것이 전문가들 사이에서 자주 쓴다.

cross-validiation 장점

1. 효율적인 데이터활용(모두 학습/평가에 활용)

2. 일반적인 정확도 측정 가능

 

단순히 지표값을 보는 것 뿐만 아니라, 데이터에 이상이 없는지도 측정을 할 수 있다.

 

train/test split 장점

1. K-fold cross-validation 보다 빠르다

2. 테스트 방법이 쉽다.

 


로이터 뉴스 분류

 


CNN이 생긴이유

이미지를 이미지로서 학습시킬려고(사람의 눈이 보는것 처럼)

 

이미지를 일열로 바꾸어버리면 공간적으로 무엇을 의미하는지 파악하기가 어렵다.(특징이 다 사라져버린다)

 

그래서 나온 것이 합성곱 신경망

 

이미지 자체의 특징을 잘 학습하기위해 2차원으로 학습하다가 다시 1차원으로(fully connect layer)로 펼쳐주고

마지막에 softmax를 해준다.

 

 

Maxpooling Layer - 이미지 특징만 추출, 이미지 사이즈 축소, 특징 일반화

'Data Anaylsis > Deep Learning' 카테고리의 다른 글

U-net 링크  (0) 2020.04.27
keras ImageDataGenerator  (0) 2020.03.20
딥러닝 2일차  (0) 2020.03.17
Keras 모델 생성/학습 - 당뇨병 예측 모델  (0) 2020.03.16
AND,OR/XOR 문제 keras로 구현!  (0) 2020.03.16

DNN 기본 용어

Perceptron

MLP

Weight Initalization

Forward

Backward

Optimization

Cost Function

 

 

vanishing gradient = layer가 깊어질수록 앞쪽의 weight는 sigmoid 함수를 자주 통과하기 때문에 역전파를 할시, 그 값이 희미해진다.?

 

input_dim = feature 개수

출력층의 actvation = Linear, Sigmoid, Softmax 각각 어떤 예측이냐에 따라 결정.

 

Validation Set은 모델이 Train 하는 학습과정에는 관여하지 않는다.

언제 오버피팅이 일어나는지. hyperparameter를 어떤 걸 조정해야할지

모른다.

하지만, Testset은 모델 학습이 끝난 후 확인만 가능한 것이고 학습에는 관여하지 않는다.

 

데이터를 나누는 것의 중요성!!!!!!!!!!!!!!!!!

 

overfitting

 

Dropout

 

LASSO , L1 Regularization

Ridge, L2 Regularization

 

모델을 단순하게 만들수록 복잡도가 줄어들어서

오버피팅을 방지 할 수 있다.

1. 가중치 개수를 줄이자(노드줄이기, 레이어 줄이기)

2. 가중치의 값 자체를 줄인다.(커질수록 복잡도가 커진다.)

(우리가 다루는 딥러닝에서는 차원자체가 높기 때문에)

 

from keras import regularizer

kernel_regularizer, activity_regularizer, bias_regularizer

 

overfitting은 모델의 복잡도와 관계가 있다.

모델은 간단할수록 좋아.

 


 

loss vs accuracy

모델을 학습할때, 실생활에서 쓸때

모델의 성능평가, 인간이 모델을 평가

 

standard scaler

min-max scaler 최솟값0,최댓값1로 맞춰준다.

 

robust scale은 중앙값으로 처리하기 때문에 이상치의 값이 너무 크거나 작은값들의 영향을 받지 않을 수 있다.

 

 


지표

 

regression : MAE, RMSE, MSE, R^2

 

mse는 각각의 상황에 따라 값이 다르게 나오기 때문에 mae를 보는 경우가 많다.(outlier에 영향을 크게 받는다.)

 

R^2가 음수가 나오면 방향성이 반대라서라고 생각하자.

 

분류 성과 지표

 

스팸메일분류:

스팸이 아닌데 스팸이라고 하면 괜찮나? 안괜찮아!! 중요 메일이 스팸함으로 가서 못보면 어떡해!==>precision 높아야된다!!

스팸인데 스팸이 아니라고하면 괜찮나? 그래도 뭐,, 괜찮아 recall은 덜 중요한거 같아

 

코로나 양/음성 판정:

코로나 확진자가 아닌데 확진자라고하면 괜찮나? 그래도 뭐,, 괜찮아 precision은 덜 중요한거같아

코로나 확진자인데 확진자가 아니라고하면 괜찮나? 그럼 큰일나!! 확진자가 활보하고 다니자나 그럼!! recall 겁나 중요해!!

 

 

 

'Data Anaylsis > Deep Learning' 카테고리의 다른 글

keras ImageDataGenerator  (0) 2020.03.20
딥러닝 3일차  (0) 2020.03.18
Keras 모델 생성/학습 - 당뇨병 예측 모델  (0) 2020.03.16
AND,OR/XOR 문제 keras로 구현!  (0) 2020.03.16
Deep learning 1일차  (0) 2020.03.16

데이터 처리

# 1. Pandas 가져오기
import pandas as pd
# 2. 데이터 불러오기
data = pd.read_csv('diabetes_data.csv')
data.head()

# 데이터 통계치 확인하기

data.describe()

# 3. X/y 나누기
X = data.iloc[:,:-1].values
y = data.iloc[:,-1].values

# values를 붙여서 numpy array형태로 가져온다!!!!! 매우 중요하다!!!! 큰 깨달음
print(X.shape)
print(y.shape)
# 4. Train set, Test set 나누기
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.25, random_state=42)


X_val, X_test, y_val, y_test = train_test_split(X_test,y_test, 
                                                test_size=0.5,
                                                random_state=19)
print(X_train.shape)
print(X_val.shape)
print(X_test.shape)
print(y_train.shape)
print(y_val.shape)
print(y_test.shape)

Keras 모델 만들기

# 5. Keras 패키지 가져오기

from keras.models import Sequential
from keras.layers import Dense

# 6. MLP 모델 생성

model = Sequential()

model.add(Dense(units=64, input_dim=8, activation='relu'))
model.add(Dense(units=128, activation='relu'))
model.add(Dense(units=1, activation='sigmoid'))

model.summary()

# 7. Compile - Optimizer, Loss function 설정
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
# 8. 학습시키기
from keras.callbacks import EarlyStopping, ModelCheckpoint

early_stop = EarlyStopping(patience=20)
batch_size = 32
epochs = 200
history = model.fit(X_train,y_train,
                  batch_size=batch_size,
                  nb_epoch=epochs,
                  validation_data=(X_val,y_val),
                  callbacks=[early_stop],
                  verbose=1
                  )

# 9. 모델 평가하기
train_acc = model.evaluate(X_train,y_train)
test_acc = model.evaluate(X_test,y_test)

print(train_acc)
print(test_acc)

시각화

# 10. 학습 시각화하기
import matplotlib.pyplot as plt

plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])

plt.title('Accuracy')
plt.xlabel('epoch')
plt.ylabel('accuracy')
plt.legend(['train','val'], loc = 'upper left')
plt.show()

# loss 값 그래프 그리기
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])

plt.title('loss')
plt.xlabel('epoch')
plt.ylabel('loss')
plt.legend(['train','val'], loc = 'upper left')
plt.show()

# 11. 모델 저장
model_path ='diabet_model.h5'
model.save(model_path)
# 12. 모델 불러오기

from keras.models import load_model

loaded_model = load_model(model_path)
print(loaded_model.summary())

 

'Data Anaylsis > Deep Learning' 카테고리의 다른 글

딥러닝 3일차  (0) 2020.03.18
딥러닝 2일차  (0) 2020.03.17
AND,OR/XOR 문제 keras로 구현!  (0) 2020.03.16
Deep learning 1일차  (0) 2020.03.16
conda 가상환경 설치  (1) 2020.03.13

+ Recent posts