목록분류 전체보기 (146)
무냐의 개발일지

CNN모델의 2가지 구성 1. 합성곱층과 풀링층이 여러겹 쌓여있는 Convolutional base : 이미지로부터 특징을 효과적으로 추출하는 것 (feature extraction) - 낮은 레벨의 계층은 input에 가까운 계층으로, 이미지에서 주로 일반적인(general) 특징을 추출한다. - 높은 레벨의 계층은 output에 가까운 계층으로, 보다 구체적이고 특유한 특징을 추출한다. 2. 완전 연결 계층으로 이루어진 Classifier : 추출된 특징을 잘 학습해서 이미지를 알맞은 카테고리로 분류하는 것 (image classification) 데이터셋의 크기에 따라, 기존 모델을 얼만큼 학습시킬 것인지를 정한다 - VGG16 모델의 구조 첫 번째 블록 : 2개의 Conv 레이어와 1개의 Pool..

앞까지는 image classification 문제를 했는데, 이제부터는 다른 task를 보자 1. Object Detection (복습) - 하나의 객체 : Classification, Localization (Bounding Box ; 위치를 지정해준다) - 여러개의 객체 : Object Detection (Classification + Localization(BBOX) + Multiple), Segmentation (픽셀 단위로 Class 분류하는 semantic) Classification에서 풀었던 RNN모델을 Multiple 문제에서 쓰면, feature는 잘 잡겠지만, 위치를 못 잡을 것이다. 그래서 새로운 모델이 필요하다. | Object Detection 발전 과정 - YOLO 구조인 R..

CNN 모델을 심화시키는 건 모델의 깊이를 늘리는 것이다. 깊이가 깊어질수록, vanishing gradient 문제가 생겼고, 기울기가 소실되지 않도록 하는 방법을 고안해야 됐다 1. GoogLeNet ( 인셉션 모듈(Inception Module)을 사용한 인공 신경망 구조) 1) Naive version | GoogLeNet - Inception module을 연속적으로 이어서 구성한다 - 여러개의 서로 다른 사이즈의 feature map을 추출하고, 결합함으로써 풍부한 feature extractor layer 구성이 가능하다 !! | 배경 좋은 성능을 얻기 위해서는 딥러닝 구조를 깊게 만들어야 한다. 다만 모델이 깊어질수록, Vanishing Gradient가 생긴다 ! * vanishing ..

- 딥러닝을 이용한 이미지 분석의 핵심은 Convolution 연산을 통해서 이미지의 숨겨진 패턴을 찾는 자동 패턴 추출기인 filter를 학습시키는 것입니다. (요게 진짜 CNN에 대한 완벽한 설명임!) 1. CNN - 이미지 데이터는 3개의 채널을 갖고 있지만, 일단은 채널 1개일 때 Convolution 연산이 어떻게 일어나나 보자 Convolution + Pooling 을 거듭한다 -> 1-Dimensional vector 만드는 Flatten -> MLP 구조 (Fully connected) -> Output * CNN 구조는 크게 Feature extraction과 Classification으로 구성됩니다. - Input이 들어가면 먼저 Convolution 연산과 Pooling을 여러 번 반..

1. 컴퓨터의 이미지 인식 | 컴퓨터의 이미지 인식 컴퓨터에게 이미지는 그저 RGB 3개의 채널을 통해 입력된 숫자 덩어리 Depth에 해당하는게 channel (색깔들)이다 이미지 데이터 안의 정보는, 주변 여러 개 픽셀과의 관계를 통해 드러난다 | 컴퓨터 비전의 다양한 태스크 Classification * 이미지 안에 하나의 object 가 있다 / 여러개의 object가 있다 -Single object : 그게 무엇인지 확인하는게 Classification, 어느 위치에 있는지 확인하는게 Localization (bounding box (BBOX)) -Multiple objects : BBOX를 여러개 만들어서 각각 classification 뭔지 확인한다, (BBOX + classification..

1. 가중치 초기화(Weights Initialization) - 모델의 활성화 값이 골고루 분포되도록 하는 방법 - 모델이 학습하기 전 가중치 값을 부여하는 것으로 적절한 가중치 값이 주어지지 않을 경우 가중치 중 활성화되는 부분이 매우 적거나 편향될 수 있기 때문에 필요 | 문제가 있는 가중치 초기화 (선형함수를 사용할 - 제로 초기화는 최악이라는데. 0이라서. 어차피 쓸 수가 없음. - 여전히 신경망의 분포를 제한한다 | 제일 좋은 초기화 방법들 - Xavier는 선형에 더 적합하다 - HE는 비선형에 더 적합하다 2. Reuters 딥러닝 모델 예제 로이터 기사 데이터를 분류하는 모델을 베이스라인으로 삼아서 오늘 배운 내용을 적용해봅니다. 3. 배치 정규화(Batch Normalization) -..

모델의 과소적합, 과대적합을 방지하기 위한 방법 3가지 - 크기 변경 - 규제 적용 - 드롭아웃 1. 모델 크기조절과 규제 - 딥러닝 모델의 크기를 조절하는 방법 2가지 : 레이어의 unit 수, 레이어의 수 - 모델이 크다 : 모델의 파라미터가 너무 많다는 거. 과대적합. | 규제 (L2 를 더 많이 사용한다) - 규제화 : 큰 가중치 값은 큰 규제를 가하는 방법 - 가중치의 분포를 균일하게 만들고, 네트워크의 복잡도에 제한을 두어 가중치가 작은 값을 갖도록 한다. - 적절한 규제값을 찾기 기본 loss function + 알파*(규제) : 규제를 얼만큼 적용할건지 정한다 | 드롭아웃 : 드롭아웃은 아주 간편하게 모델에 적용할 수 있다는 점에서 활용도가 크다 - 20~50% 사이의 비율의 노드를 dro..

1. MNIST 딥러닝 모델 예제 1) 데이터 로드 및 전처리 - train, val, test 세트로 나누기 - 0~1로 정규화하기, 원핫 인코딩하기(0~9까지의 숫자를 맞추는 거니까) 2) 모델 구성 - Sequential API 사용해서, Input, Flatten, Dense layer 쌓기 3) 모델 컴파일, 학습 - model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])) 지정해주기 - history = model.fit(x_train, y_train, epochs=50, batch_size=128, validation_data=(x_val, y_val)) - 훈련과정을 history에 저장해서 ..