🔴 공부할 영상 및 링크주소
- 🟠 DNN, CNN, YOLO, ResNET
https://www.youtube.com/watch?v=HAhMy6St7oc- 🟡 YOLO ver_4 인공지능 주차장 차단기 만들기 + 번호판 인식
https://www.youtube.com/watch?v=mmFrZV1iH0c- 🟢 YOLO ver_5 학습 튜토리얼
https://www.youtube.com/watch?v=T0DO1C8uYP8- 🔵 YOLO ver_7 딥러닝 영상분류/영상인식
https://www.youtube.com/watch?v=c18ILApJ1OU- 🟣 YOLO ver_7 상위버전
https://github.com/WongKinYiu/yolov7
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (1-1)
◾ 머신러닝에서 다양한 문제를 풀기 위해, 여러가지 회귀 방법을 사용한다
- 예를들어, 회귀분석의 대표적인 2가지는 선형회귀분석과 로지스틱 회귀분석이다
- 선형회귀는 '집의 넓이에 따른 집값'과 같이 집값 예측문제를 예로 들 수 있다
- 로지스틱 회귀분석은 (0 or 1처럼) 종양의 크기에 따른 양성과 음성에 대한 여부를 구할 때 사용한다
- 즉, 선형회귀와 로지스틱 회귀 분석은 기본적인 기계학습 문제 (= 복잡하지 않은 문제들)를 의미한다
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (1-2)
◾ 딥 뉴럴 네트워크란?
- CNN or 음성해석, 시계열 예측의 경우는 선형회귀, 로지스틱회귀분석 보다는 어려운 문제를 해결하는 방법이다
- CNN or 음성해석, 시계열 예측의 경우는 인공신경망의 네트워크를 활용하여 문제를 해결한다
- 아래의 그림 설명 : input layer(들어오는 층)를 입력층, output layer (나가는 층)을 출력층이라고 한다. 또한, 사이에 있는 것은 hidden layer 이다 (요즘 추세는 hidden layer를 많이 하는 것이다)
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (1-3)
◾ 여러가지 활성화 함수
- 뉴런들이 연결하는데 가중치와 편향이 파라미터
- 보통 마지막에는 Softmax를 사용, 중간 중간에는 Relu를 사용
- 뉴런-뉴런 사이를 연결시켜주는 파라미터들은 웨이트 가중치와 편향이 있고, 이를 다합쳐서
Activation fuction
활성화 함수를 통해 뉴런-뉴런 사이를 연결 시킨다고 할 수 있다- neural network의 쓰임에 따라,
Activation fuction
이 다르게 사용된다 (ex. sigmoid, tanh, Relu 등)
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (1-4)
◾ 여러가지 DNN 인공신경망의 종류와 사용 사례
- Standard Neutal Network : 집값 예측 문제, 광고를 클릭 여부(할지/말지?)
- CNN : 이미지 분석
- RNN : 음성인식, 자연어처리-번역
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (1-5)
◾ 학습에 필요한 정보
- MAE, MSE 등 Loss function을 구한 후, Back Propagation 진행 (loss 값의 미분을 구해서 loss 값을 낮춤)
- 그 외에도 learning rate, epoch 수, 딥러닝 모델 구조, 활성화 함수 선택, optimization의 선택 등 여러가지가 있다
: 파라미터들의 미분 값을 조정하는 과정에서 Back Propagation에서 loss값을 최소화 시키는 과정이 있다
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (2-1)
◾ CNN-컴퓨터 비전 이미지 처리의 문제
- 이미지 분류, 객체 인식, 스타일 트랜스퍼 등 여러 문제들
- 컴퓨터 비전에서의 문제 : Parameter 개수가 너무 많아짐
ex. 고양이 or 개 분류, object detection(객체탐지)
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (2-2)
◾ CNN-Convolution이 이를 해결하는 방법
- 만약, Convolution이 없다면, 3000*4000해서 14백만의 parameter가 존재
- Convolution으로는 156개의 parameter만 존재함
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (2-3)
◾ CNN 구조
- Convolution layer : 수평선, 수직선, 대각선 등 점이나 선을 포착해서 가려줌
- Pooling layer : 강조하거나, 단순화 하는 역할
- Fully Connected layer : 마지막으로 나온 결과들을 한 대로 모으는 역할
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (2-4)
◾ CNN 예시 - LeNet 5
- 각각의 Convolution, Pooling, FC layer가 들어간 함수
- 마지막에는 softmax로 10개 중 하나를 고름 (1~10까지의 손글씨 구분)
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (2-5)
◾ CNN-ResNet
- 기존 CNN의 문제점 : layer가 많아질수록 Gradient vanishing 현상이 생겨서 그걸 방지
- Skip connenction을 이용해서 깊이가 깊어지더라도 gradient vanishing 현상이 생기지 않도록 방지
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (2-6)
◾ Yolo
- 장점 : 빠르다
- Yolo가 객체를 인식하는 방법 : 가운데 있는지 검색
- 객체를 인식 할 때, 사진은 여러개 바운딩 박스로 나눈 후에 가운데에 객체가 있는지/없는지를 나타내어 객체를 찾는다고 할 수 있다
- x, y, w, h를 구하고, c1(개), c2(사람)이 있는지 없는지를 구한다
Yolo가 똑같은 객체를 제외하는 법 : IOU
- 같은 bounding box 안에 몇 개의 객체가 잡혔을 경우 : Anchor box로 해결
🟠 DNN, CNN의 기본적인 이해 (인공신경망, Yolo, Resnet 등) (2-7)
◾ 그 외 알고리즘
- RCNN : Segmentation 활용, 그 부분만 탐지를 적용
- Fast RCNN : Sliding window과 convolution을 통해서 어디를 탐지할지를 정함
- Fast R-CNN : Convolution을 이용해 어디를 탐지해야 하는지 정함
- Yolo가 더 빠르기 때문에 Yolo가 더 많이 쓰임