무냐의 개발일지
[3/11] 컴퓨터비전1 본문
1. 컴퓨터의 이미지 인식
| 컴퓨터의 이미지 인식
컴퓨터에게 이미지는 그저 RGB 3개의 채널을 통해 입력된 숫자 덩어리
Depth에 해당하는게 channel (색깔들)이다
이미지 데이터 안의 정보는, 주변 여러 개 픽셀과의 관계를 통해 드러난다
| 컴퓨터 비전의 다양한 태스크
Classification
* 이미지 안에 하나의 object 가 있다 / 여러개의 object가 있다
-Single object : 그게 무엇인지 확인하는게 Classification, 어느 위치에 있는지 확인하는게 Localization (bounding box (BBOX))
-Multiple objects : BBOX를 여러개 만들어서 각각 classification 뭔지 확인한다, (BBOX + classification = Object Detection)
Semantic Segmentation : 픽셀 수준에서 의미를 찾는다 (BBOX가 아니라, 픽셀단위의 class를 분류한다.)
Instance Segmentation : 픽셀 단위에서 객체별로 또 나눈다?
2. 다층 퍼셉트론 (Multi-layer perceptron ; MLP)
| 왜 Deep learning?
Deep이라는 건, 학습을 하는데 얕은 게 있고 깊은 게 있다. Input, Output, 그리고 그 안에 Hidden layer가 여러개가 있다. 이 Deep 하다는 건 Hidden layer가 많다는 걸 뜻한다.
| 딥러닝
딥러닝은 perceptron이라는 개념에서 시작했고, 그 이후 RNN, CNN이 순차적으로 나왔다.
- 뉴런 : 신호를 받아서 -> sum 조합하고 -> 특정 threshold를 넘으면 fire 발산하여 다른 뉴런으로 전달한다. 단, 조합한 걸 그대로 전달하지 않고, 변형이 있을 수 있다.
- 퍼셉트론 : 마찬가지로, 입력변수들을 가중치를 적용하여 조합하여 활성함수(activation function - ReLU를 적용하면 양수는 그대로, 음수는 0으로 출력되겠지)를 적용해 최종 결과물을 생성한다. (이 가중치(parameter)들을 train을 통해 최적값을 찾아낸다) - 여기서 back, forward propagation을 반복해서 최적값을 찾아낸다. 이건 single persceptron인거고, multi layer은 이게 여러개 존재하는 것.
| MLP
- 더 많은 hidden neurons 존재할수록 분류경계면의 복잡도가 높아짐. (복잡한 데이터도 분류 잘하게 됨)
| Representation Learning (MLP 모델 구조의 핵심)
- 딥러닝에서 Representation 수행(Representation Learning)의 의미는 데이터에서 중요한 정보나 특징을 자동으로 추출하고 이를 유용한 형태로 변환하는 과정을 말합니다. 이러한 과정을 통해, 원시 데이터(raw data)로부터 더 추상적이고 의미 있는 데이터의 표현(representation)을 학습하여, 특정 작업(예: 분류, 회귀, 클러스터링)에 대한 모델의 성능을 향상시킬 수
- Representation을 통해서 원래 데이터가 존재하는 공간을 변경하는 것을 의미. Representation learning은 Training 하는 과정에서 parameter를 계속해서 변형하여 task를 수행하는 데에 가장 적합한 공간구조를 Representation을 합니다.
- hidden layer가 많으면, 숨겨졌던, 못 찾았던 hidden pattern들을 여러 방식으로 복잡하게 찾을 수 있다. 그게 바로 Representation Learning 이라고 한다. = Pattern Extractor = Feature Extractor
- MLP에서 representation learning은 입력 데이터를 효과적으로 표현하는 방법을 학습하는 과정을 가리킵니다. 간단히 말해, 모델이 입력 데이터를 잘 이해하고 중요한 특징을 추출하여 그것을 표현하는 방법을 배우는 것입니다. 이것은 보통 중간층에서 일어납니다.
- MLP에서 representation learning은 일반적으로 히든 레이어의 가중치를 조절하여 이루어집니다. 데이터가 입력층을 통과하면서 각 레이어마다 특정한 표현이 형성되는데, 이 표현은 점차적으로 더 추상적이고 의미 있는 특징으로 발전할 수 있습니다. 이런 방식으로 MLP는 데이터의 복잡한 패턴을 학습하고 표현할 수 있게 됩니다.
- 예를 들어, 이미지 분류 작업을 수행하는 MLP에서, 첫 번째 히든 레이어는 간단한 에지나 색상 등의 저수준 특징을 학습할 수 있고, 그 다음 레이어는 더 고수준의 특징을 학습할 수 있습니다(예: 눈, 코, 입 등). 마지막 출력 레이어는 이러한 특징을 기반으로 이미지가 어떤 클래스에 속하는지 결정하는 작업을 수행할 것입니다.
- 이러한 방식으로, MLP의 각 레이어는 데이터를 다양한 수준의 추상적인 표현으로 변환하게 되며, 이를 통해 모델은 입력 데이터의 복잡한 패턴을 효과적으로 학습하고 이해할 수 있게 됩니다.
| 이미지 데이터를 MLP 에 적용하는 방법
- 숫자 이미지 데이터는 지금 2차원 구조니까, MLP에 맞게 1차원 데이터로 바꾸는 작업이 필수로 선행되어야 한다.
(INPUT의 구조가 1차원이니까!)
- 한 행을 수직 벡터로 세워서 쭉 정렬하면 28x28 이니까 총 784개가 생긴다
- 근데 이렇게 해버리면, 1차원 데이터로 보면 이건 고양이라고 볼 수가 없잖아
- 2차원 그림이었으니까, 주변 픽셀 간 관계를 활용해서 이미지가 완성됐던건데!! (
Dense layer로 넣어주려면 데이터를 flatten하게 해줘야한다.
Dense -> Batch normalization - Activation - Dropout 순서!
'Data Scientist Bootcamp' 카테고리의 다른 글
[3/13] 컴퓨터비전3 _ 심화 CNN, Transfer Learning (0) | 2024.03.13 |
---|---|
[3/12] 컴퓨터비전2_ CNN(Convolutional Neural Network) (0) | 2024.03.12 |
[3/8] 딥러닝 심화3 (가중치 초기화, 배치정규화) (2) | 2024.03.08 |
[3/8] 딥러닝 심화2 (모델의 과소적합, 과대적합을 방지하기 위한 방법 3가지) (0) | 2024.03.08 |
[3/8] 딥러닝 심화 (학습시킨 모델 저장, 관리/ 모델학습기술 optimizer, activation function 등) (1) | 2024.03.08 |