본문 바로가기

전체 글

(55)
[DL/기본개념] 옵티마이저(Optimizer) 종류 📍목차 1. 옵티마이저란? 2. 옵티마이저의 종류 1. 옵티마이저(Optimizer)란? 손실함수를 사용해서 구한 오차를 이용하여 미분을 하여 기울기를 구하고 이를 통해 어떻게 파라미터를 업데이트 할지 결정하는 방법이다. 방법에는 아래 사진과 같이 여러 종류가 있다. 2. 옵티마이저의 종류 1. SGD ( Stochastic Gradient Descent; 확률적 경사하강법 ) 미니배치 단위로 가중치와 편향이 업데이트 배치로 학습하는 이유는 full-batch로 epoch마다 weight를 수정하지 않고 빠르게 mini-batch로 weight를 수정하면서 학습하기 위해 2. Momentum 관성의 방향을 고려해 진동과 폭을 줄이는 효과 SGD의 느린 학습 속도와 협곡과 안장점을 만났을 때 학습이 안되는..
[DL/기본개념] 역전파(Backpropagation) 알고리즘과 경사 하강법(Gradient descent) 📍목차 1. 역전파 알고리즘이란? - 순전파 - 역전파 - 신경망 학습 과정 2. 경사 하강법이란? - 최적화 과정 - 수식 유도 - 한계점 1. 역전파 알고리즘이란? 1.1 순전파(Forward Propagation) 순전파는 입력층에서 입력된 신호가 은닉층의 연산을 거쳐서 출력층에 값을 내보내는 과정. 1. 입력층으로부터 데이터를 입력받음 2. 입력된 데이터를 가중치 및 편향과 연산한 뒤에 더해준다 3. 가중합을 통해 구해진 값은 활성화 함수를 통해 다음 층으로 전달된다 1.2 역전파(Backpropagation) 알고리즘 역전파란 역방향으로(출력층-> 입력층) 오차를 전파시키면서 각 층의 가중치를 업데이트하고 최적의 학습 결과를 찾아가는 방법이다. 출력값에 대한 입력값의 기울기(미분값)을 출력층 l..
[DL/기본개념] 손실함수(Loss Function) 개념 및 종류 📍목차 1. 손실함수란? 2. 손실함수의 종류 1. 손실함수 (Loss Function)란? 손실함수는 머신러닝/딥러닝 에서 모델이 예측한 값과 실제 정답의 차이를 나타내는 함수이다. '학습 중에 알고리즘이 얼마나 잘못 예측하는지'를 확인하기 위한 함수로 최적화를 위해 오차를 최소화하는 것이 목적인 함수이다. 손실(loss)가 커질수록 학습이 잘 안되고 있음을 나타낸다. 모델을 학습하는 과정은 즉, 손실함수를 최소화 하는 가중치와 편향을 찾는 것이 목표이다. 손실함수를 목적함수, 비용함수 라고도 혼용해서 부르는데 정의는 완전히 다르다 손실함수 : 입력으로 받은 데이터를 하나씩 모두 오차를 계산하는 방식 비용함수 : 입력으로 들어온 데이터를 기반으로 모든 데이터의 비용을 계산하는 방식 목적함수 : 말그대로..
[DL/기본개념] 활성화 함수(Activation Function) 개념 및 종류 📍목차 1. 활성화 함수란? 2. 활성화 함수 종류 2.1 계단함수 2.2 sigmoid 2.3 tanh 2.4 softmax 2.5 relu 2.6 leaky relu 1. 활성화 함수란? 활성화 함수(Activation Function)란 입력 신호의 총합을 출력 신호로 변환하는 함수를 말한다. 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할이다. 활성화 함수는 비선형(non-linear)을 표현 할 수 있게 해준다. 선형 함수란 1개의 곧은 직선으로 나타나는 함수이고 비선형 함수는 직선 하나로는 그릴 수 없는 함수이다. 신경망에서 선형 함수를 사용하면 신경망의 층을 깊게 하는 의미가 없어진다. 선형 함수를 아무리 합성해도 선형 함수이기 때문이다. 따라서 여러개의 층을 쌓기 위해서는 비선형 함수..
[DL/기본개념] 퍼셉트론(Perceptron) 개념 📍목차 1. 퍼셉트론이란 2. 퍼셉트론 종류 2.1 단층 퍼셉트론 2.2 다층 퍼셉트론 1. 퍼셉트론(Perceptron) 이란 사람의 뇌 신경세포의 동작과정을 흉내내어 만든 수학적 모델이 퍼셉트론이다. 퍼셉트론은 인공 신경망(Aritificial Neural Network, ANN)의 구성 요소(unit)로서 다수의 값을 입력받아 하나의 값으로 출력하는 알고리즘이다. 퍼셉트론의 구조는 입력층과 출력층이라는 2개의 층으로 구성되는 단순한 구조 원을 뉴런 또는 노드라고 하며 x는 입력신호, y는 출력신호, w는 가중치를 뜻한다 뉴련에서 전달 받은 신호의 총합이 임계값을 넘을 때만 1을 출력 2. 퍼셉트론 종류 퍼셉트론의 종류는 입력층과 출력층 사이에 은닉층의 존재 여부에 따라 단층(single-layer)..
[AIFFEL/GoingDeeper] Object Detection Architecture 딥러닝 기반의 Object Detection 모델은 크게 Single stage detector와 Two stage detector로 구분할 수 있다. Many stage라고 적혀있는 방법에서는 물체가 있을 법한 위치의 후보(proposals) 들을 뽑아내는 단계, 이후 실제로 물체가 있는지를 Classification과 정확한 바운딩 박스를 구하는 Regression을 수행하는 단계가 분리되어 있다. 대표적으로는 Faster-RCNN을 예로 들 수 있다. One stage Detector는 객체의 검출과 분류, 그리고 바운딩 박스 regression을 한 번에 하는 방법이다. Single stage를 통해서 한번에 연산해내는 것이 속도면에서 빠르다 📍 Two-Stage Detector ✔ R-CNN 대..
[AIFFEL/GoingDeeper] Object Detection 📍 Object Detection - 어떤 이미지를 입력했을 때 그 결과가 해당 객체를 localization(bounding box)해주고, 해당 box안에 있는 객체가 무엇인지 classification까지 해주는 것 Multi object detection을 통해 이미지에 있는 여러 물체를 한꺼번에 찾아내야 한다. 이때는 어떻게 물체를 찾아낼 수 있을까?? ✔ 1.슬라이딩 윈도우(Sliding Window) 큰 이미지에서 여러 물체를 찾으려면 ?? 슬라이딩 윈도우(sliding window) 전체 이미지를 적당한 크기의 영역으로 나눈 후에, 각각의 영역에 대해 Localization network를 반복 적용해 보는 방식. Localization network의 입력으로 만들기 위해서 원본 이미지에..
[AIFFEL/GoingDeeper] Object Detection을 위한 기본지식 ✔ 1. 용어 정리 Classification - 주어진 이미지 안의 물체가 무엇인지 알아내는 것 - 한 가지 물체를 찾기 때문에 가장 큰 물체를 알아내려고 한다 - 가장 단순한 딥러닝 형태 Localization - 주어진 이미지 안의 물체가 어느 위치에 있는지 찾아내는 것 - 주로 Bounding Box라는 사각형 형태로 위치를 나타낸다 - 물체의 위치가 담긴 사각형을 (min_x, min_y, max_x, max_y)로 나타내거나 (min_x, min_y, width, height)로 나타낸다. Object Detection - 주어진 이미지 안의 물체가 무엇인지, 어디에 있는지 모두 알아내는 것 - 하나의 물체만 대상으로 할 수도 있지만, 보통 여러 물체를 찾아낸다. - 만 위 이미지처럼 강아지가..