Transfer Learning, 즉 전이 학습은 ML(머신 러닝)과 DL(딥러닝)에서 기존의 Pre-Training 된 모델을 새로운 작업에 재사용하는 기법입니다. 이 방법은 특히 대규모 데이터셋에서 학습된 모델을 작은 데이터셋에 적용할 때 유용합니다.전이 학습은 모델이 사전 학습한 지식을 새로운 문제에 적용하여 학습 속도를 높이고 성능을 향상시킬 수 있습니다.Transfer Learning (전이 학습)기존의 Neural Network(신경망)에서 최상위 부분을 새로 정의한 다음, 이 부분을 Training 시키는 것이 Transfer Learning (전이 학습) 이라고 합니다.이때 Neural Network(신경망)의 하위 부분은 이미 Training된 Neural Network(신경망)을 사용하..
Precision(정밀도) & Recall(재현율)정밀도(Precision)과 재현율(Recall)은 주로 Binary Classification(이진 분류)에서 사용되는 성능지표 입니다.정밀도(Precision)는 예측을 Positive로 한 대상 중에 예측과 실제 값이 Positive로 일치한 데이터의 비율을 뜻합니다.Object Detection에서는 검출 알고리즘이 검출 예측한 결과가 실제 Object들과 얼마나 일치하는지를 나타내는 지표입니다.재현율(Recall)은 실제 값이 Positive인 대상 중에 예측과 실제 값이 Positive로 일치한 데이터의 비율을 뜻합니다. ObjectDetection에서는 검출 알고리즘이 실제 Object들을 빠뜨리지 않고 얼마나 정확히 검출 예측하는지를 나타내..
이번에는 Convolution Layer, Pooling Layer를 한번 구현해 보겠습니다. Convolution & Pooling Layer 구현해보기4-Dimension Array (4차원 배열)Convolution Neural Network(CNN)에서 Layer 사이를 흐르는 데이터는 4차원입니다.예를 들어서 데이터의 형상이 (10, 1, 28, 28)이면?Height(높이): 28, Width(너비): 28, Channel(채널): 1개인 데이터가 10개라는 이야기 입니다.이를 Python으로 구현하면 아래의 코드와 같습니다.x = np.random.rand(10, 1, 28, 28) # 무작위로 데이터 생성x[0, 0] # 또는 x[0][0] 첫번째 데이터의 첫 채널 공간 데이터에 접근여기에..
이번 글에서는 한번 Object Detection의 방식들이 어떤것이 있는지 한번 알아보겠습니다.Sliding Window 방식Sliding Window 방식은 Window를 왼쪽 상단부터 오른쪽 하단으로 이동시키면서 Object를 Detection 하는 방식입니다.약간 촘촘히, 세밀하게 window를 이동시키면서 객체 탐지를 하는 방식입니다. 이미지를 작은 영역으로 나누고, 각각의 작은 영역(윈도우)에서 객체가 존재하는지를 탐지하는 방법입니다.장점은 많은 영역을 Scan 할수 있는것, Window의 형태랑 Image Scale을 다양하게 변경할 수 있다는 점입니다.단점은 Object 없는 영역도 무조건 슬라이딩 하여야 하며 여러 형태의 Window와 여러 Scale을 가진 이미지를 스캔해서 검출해야 하..
Convolutional Neural Network, CNN은 이미지 인식 & 음식 인식등 다양한 곳에서 사용됩니다.특히 이미지 인식 분야 에서 딥러닝을 활용한 기법은 거이 다 CNN을 기초로 합니다.CNN 전체 구조Convolution Layer(합성곱 계층)과 Pooling Layer(풀링 계층)이 이번에 새로 등장합니다.우리가 본 지금까지의 Neural Network(신경망)은 모든 Neuron과 연결되어 있었습니다.이를 Fully-Connected (FC) - 완전연결 이라고 하며, 완전히 연결된 Layer는 'Affine 계층' 이라는 이름으로 구현했습니다.만약 Affine 계층을 사용하면, Layer가 5개인 Fully-Connected Neural Network(FC 신경망)은 아래의 구림과..
Intro Object DetectionObject Detection은 Deep Learning(딥러닝) 기반으로 발전하였습니다.Object detection은 컴퓨터 비전 분야에서 중요한 연구 주제 중 하나로, 이미지나 비디오 내에서 객체의 위치를 찾고, 해당 객체가 무엇인지를 식별하는 기술입니다.이 기술은 보안 시스템, 자율 주행 차량, 얼굴 인식, 이미지 검색 엔진 등 다양한 응용 분야에서 활용됩니다.PASCAL VOC 대회에서 convnet을 사용하기 전이랑 후랑 성능 지표가 확 상승한것을 볼 수 있습니다.Localization, Detection, SegmentationLocalization, Detection, Segmentation 이 3개의 공통점은 Object의 위치를 찾아주는것입니다.L..
올바른 학습을 위해 Machine Learning에서 Overfitting이 되는 일이 많습니다. Overiftting(오버피팅)은 신경망이 Training data(훈련 데이터)에만 지나치게 적용되어서 그 외의 데이터에는 제대로 대응하지 못하는 상태입니다.Overfitting (오버피팅)오버피팅은 매개변수가 많고 표현력이 높은 모델인 경우, 훈련데이터가 적은 경우에 주로 일어납니다.이 두 요건을 충족하여 Overiftting(오버피팅)을 일으켜 보겠습니다.MNIST Dataset의 훈련데이터중 300개만 사용하고, 7-Layer Network를 사용해서 Network의 복잡성을 높혀보겠습니다.각 Layer의 Neuron은 100개, Activation Function(활성화 함수)는 ReLU 함수를 사..
Batch Normalization - 배치 정규화Batch Normalization (배치 정규화)의 개념은 2015년에 제안된 방법입니다.일단, Batch Normalization(배치 정규화)가 주목받는 이유는 다음의 이유들과 같습니다.Training(학습)을 빨리 할 수 있습니다. 즉, Training(학습) 속도를 개선하는 효과가 있습니다.초깃값에 크게 의존하지 않는다는 특징이 있습니다.그리고 Overiftting을 억제하는 특징이 있습니다. 즉, Dropout등의 필요성이 감소합니다.Batch Normalization(배치 정규화)의 기본 아이디어는 앞에서 말했듯이 각 Layer(층)에서의 Activation Value(활성화 값)이 적당히 분포가 되도록 조정하는 것입니다. 한번 예시를 보겠습..
Parameter(매개변수) 갱신신경망 학습의 목적은 Loss Function (손실 함수)의 값을 가능한 낮추는 매개변수를 찾는것입니다. 이는 곧 매개변수의 최적값을 찾는 문제이며, 이러한 문제를 푸는것은 Optimization(최적화) 라고 합니다.그리고 최적의 Parameter(매개변수) 값을 찾는 단소로 Parameter(매개변수)의 Gradient(기울기-미분)을 이용했습니다.Parameter(매개변수)의 Gradient를 구해, 기울어진 방향으로 Parameter(매개변수) 값을 갱신하는 일을 몇 번이고 반복해서 점점 최적의 값에 다가갔습니다. 이것이 확률적 경사 하강법 - Stochastic Gradient Descent(SGD)라고 합니다.또한 확률적 경사 하강법 - Stochastic G..
Activation Function (활성화 함수)Activation Function(활성화 함수)란? 신경망에서 각 Node & Neuron에서 Input Signal(입력신호)의 총합을 Output Signal(출력 신호)로 변환하는 함수입니다.또한 Nerual Network(신경망)의 Non-Linear 문제를 해결하게 해줍니다.비선형 문제: 입력, 출력 변수간의 관계가 선형이 아닌 문제를 의미합니다. 입력 변수가 작은 변화가 출력에 비례하지 않거나, 예측하기 어려운 변화를 일으키는 경우에 해당Activation Function(활성화 함수)는 임계값을 기준으로 출력이 봐뀝니다, 이런 함수를 Step Function(계산 함수)라고 합니다.그래서 Perceptron(퍼셉트론)에서 Activation..