CNN에서 Network Training을 할 때 사용되는 option에 대해 알아보자 일단 대략적인 순서는 다음과 같다 1. 학습 데이터를 Train Set, Test Set, Validation Set 세 가지로 나눈다 Training Data - 가중치 학습에 사용되는 데이터 Validation Data - "학습 중" 성능 평가에 사용되는 데이터 Test Data - "학습 모두 끝난 후" 성능 평가에 사용되는 데이터 [trainData, valData, testData] = splitEachLabel(DataSet, 0.8, 0.1, 0.1); 2. option 설정 2-1) 알고리즘 * 대부분의 알고리즘은 "★경사 하강법★"을 기반으로 한다 - Loss Function에서 제일 최소점을 향해 ..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
# Convolutional Neural network의 레이어 구성 여기서, FullyConnectedLayer는 있는 경우도 있고 없는 경우도 있다. 대충 앞에서 다 봤으니 빠르게 알아보자 # ImageInputLayer - input size를 정의하고, 데이터를 정규화한다. (정규화는 데이터의 평균값을 구해서 빼는 방식) # Convolution Layer - Feature Extraction 하기 위해 사용된다. CNN에서 가장 핵심 레이어. - input 파일에 필터를 씌운다(Sliding Filter) - 필터 내부 값(가중치 값)은 내가 정하지 않음. 훈련을 통해 특징을 잘 찾아내도록 계속 수정해 가는 것. - 필터 사이즈만 정해주면 내부 가중치는 학습을 통해 만들어진다. - Transfe..
* 본 게시글은 채널 유튜브 영상을 시청하고 개인적으로 복습하기 위해 작성하였습니다.' ------- # https://www.youtube.com/watch?v=Q34X4U5pUEE&t=523s About a week ago, I got an email from an old friend. We hadn't been in touch for a couple of years. We exchanged phone numbers and we spoke on the phone a couple of times and we've been texting quite frequently. # https://www.youtube.com/watch?v=xY8-tOJu0GQ [관계절 Part 1] 영어는 대상이 먼저 나오고 부연..
네트워크를 사용하는건 세가지 방법이 존재한다 1. Pretrained Network - 다른 사람이 만들어놓은 네트워크를 그냥 그대로 사용한다 2. Transfer Learning - 다른 사람이 만들어놓은 네트워크를 가져오되 내 입맛에 맞게 수정해 사용한다 - 네트워크 뒤편, Fully-Connected Layer, output Layer만 수정해서 사용하기만 해도 된다. - 상당수의 경우 Transfer Learning 네트워크만 사용해도 만족스러운 결과를 예측한다. - 단, input 입력 크기가 고정되어 있기 때문에 이 조건에 맞지 않으면 사용할 수 없거나, 성능이 매우 떨어진다. (input이 3채널 이상이거나, 이미지 크기가 맞지 않거나(업스케일링-> 픽셀 깨짐 -> 성능 하락) 등..) 3...
* 레이어의 상세 동작 원리는 다루지 않습니다. CNN을 통해 Image에서 Feature을 추출하는 레이어 [Convolutoin, Pooling, ReLU] 에 대해 알아보자 참고) CNN은 input으로 이미지만 받아야 하는게 아님 (n x m 2D 배열이면 다 됨) - 단, 이미지가 아니면 결과를 시각적으로 알아보기 힘들 뿐. 이번 수업에서는 squeezenet 모델을 전이학습으로 사용해본다. analyzeNetwork(net) 위 메소드를 사용하면 해당 모델의 레이어 구성을 시각적으로 확인할 수 있다. squeezenet 네트워크는 총 68개의 계층(레이어)가 있다는 것을 알 수 있다.. (대학원 석사쯤 밟고 AI 분야로 취업하면 저렇게 많은 레이어들을 하나하나 구성하고, 가중치 조절하고 하면서..
# Image Datastore 머신러닝을 하기 위해서는 수많은 데이터를 사용해 학습시켜야 한다. 이런 이미지들을 모두 불러와서서 학습시키기에는 프로그램에 너무 많은 부담이 된다. 따라서 매트랩에는 이미지를 전부 불러올 필요 없이(변수로 저장해둘 필요 없이), DataStore가 이미지의 메타데이터를 담아두고 있다가, 필요할 때 직접 꺼내쓰는 방식을 사용한다 => 메모리 절약, 속도 향상 내가 이해한게 맞나 모르겠다. 다른 한글 자료가 없더라. 영어가 필수야 필수;; 다음으로, 이미지의 상태가 정상이 아닌 경우(잘렸거나, 회전했거나, 찌그러졌거나 등..) 전처리 과정을 거칠 필요가 있다. (Preprocessing) 전처리 과정은 "augmentedImageDatastore" 이 담당해서 해준다. 지금까..