Classification
- 기계 학습과 통계학에서 시스템이 일련의 특성을 기반으로 미리 정의된 여러 범주 또는 클래스 중 하나에 주어진 입력을 할당 하도록 훈련되는 과정
- 입력 기능과 클래스 레이블 사이의 학습된 관계를 기반으로 보이지 않는 샘플의 클래스 레이블을 예측
- Binary classification: 이진 분류의 목표는 데이터 요소를 두 클래스 중 하나로 분류
- 스팸 vs. 스팸이 아닌 이메일
- 사기 vs. 비사기 거래 감지
- 질병 vs. 질병 진단 없음 - Multiclass Classification
- 필기 숫자 인식(10개 클래스: 0-9)
- 이미지에서의 객체 인식(예: 개, 고양이, 자동차 등과 같은 클래스)
- 뉴스 기사 분류(예: 정치, 스포츠, 기술 등) - Multilabel Classification
- 이미지 주석, 여기서 단일 이미지는 다수의 객체들을 포함
- 각각의 객체는 다수의 클래스들에 속함( , 개는 "포유동물" 및 "길들여진 동물" 둘 다)
Convolutional Neural Network (CNN)
- 이미지 및 비디오 인식 작업을 위해 설계된 딥 러닝 신경망의 한 유형
- 컨볼루션 계층을 사용하여 입력 데이터에서 특징을 추출
- 계층을 풀링하여 공간 차원을 줄이고, 비선형 활성화 함수를 사용하여 비선형성을 도입
- 분류를 위해 완전히 연결된 계층을 사용
- CNN 특징 요약 및 정리
- Convolutional Layers: CNN의 주요 구성 요소는 입력 데이터에 필터 집합을 적용하여 특징을 추출하는 컨벌루션 계층
- 필터는 입력 데이터에서 가장자리, 모양 및 기타 기능을 감지하는 데 사용
- 필터는 "수용 필드"라고 하는 입력 데이터의 작은 겹치는 영역에 적용 - Pooling Layers
- 컨벌루션 계층 이후에는 출력이 풀링 계층을 통과하는 경우가 많으며, 이는 가장 중요한 특징을 유지하면서 데이터의 공간 차원을 줄임
풀링은 일반적으로 수용 필드 내의 최대값이 선택되어 출력으로 사용되는 최대 풀링을 사용하여 수행 - Non-Linearity
- 풀링 계층의 출력값이 ReLU와 같은 비선형 활성화 함수를 통해 전달되어 네트워크에 비선형성이 도입
- 네트워크는 입력값과 출력값 간의 복잡한 비선형 관계를 학습 - Fully Connected Layers
- 컨벌루션 계층과 풀링 계층 후에 출력은 일반적으로 벡터로 평면화되고 하나 이상의 완전 연결(FC) 계층을 통과
- 이전 계층의 출력이 다음 계층에 대한 입력으로 사용되는 전통적인 신경망 계층으로 작동 - Training
- 필터, 풀링 연산 및 FC 계층의 가중치는 지도 학습을 사용하여 훈련 중에 학습
- 네트워크에는 레이블이 지정된 훈련 예제가 제공
- 가중치는 예측된 출력값과 실제 출력값 간의 오차를 최소화하도록 업데이트 - Applications
- CNN은 이미지 분류, 객체 감지 및 분할을 포함한 다양한 컴퓨터 비전 작업에서 최첨단 성능을 달성
- 감정 분석 및 기계 번역과 같은 자연어 처리 작업에도 사용 - Advantages
- CNN의 장점 중 일부는 입력 데이터의 계층적 표현을 학습하는 기능, 변환 불변 작업을 처리하는 기능 및 데이터에서 기능 표현을 자동으로 학습하는 기능을 포함
Classification 평가 지표
메트릭 = 모델의 성능을 평가하는 데 사용되는 측정값
- 모델의 예측을 실제 출력과 비교하고 모델이 특정 작업에서 얼마나 잘 수행되고 있는지 확인하는 데 사용
- Binary classification confusion matrix
- Accuracy: 모델의 accuracy는 모델에서 수행한 올바른 예측의 비율
- Precision: Precision는 모델에서 수행한 총 긍정 예측 수에 대한 참 긍정 예측의 비율
- Recall: Recall은 실제 긍정 사례의 총 수에 대한 참 긍정 예측의 비율
- F1 Score: F1 score는 정밀도와 재현율의 조화 평균이며 정밀도와 재현율 간의 균형을 맞추기 위한 단일 메트릭으로 사용 - AUC-ROC Curve (Area Under the Receiver Operating Characteristic) : 이진 분류 문제에 대한 성능 메트릭
- 참양성률과 가양성률 간의 균형을 측정
- AUC - ROC Curve는 임계값(threshold)를 변화시키면서 분류 문제에 대한 성능을 측정
- ROC는 확률 곡선(probability curve)이고 AUC는 분리의 정도
- ROC 곡선 아래에 있는 면적이 AUC
- AUC - ROC Curve는 모델이 클래스를 얼마나 잘 분류할 수 있는지 확인 가능
- AUC가 높을수록 모델이 0 클래스를 0으로, 1 클래스를 1로 예측을 잘한다는 것을 의미 - Multi classification에서의 평가 지표
- Macro-averaging : 각 K confusion matrix을 원하는 메트릭으로 줄인 다음 K score를 단일 점수로 평균화
- Micro-averaging : 서로 다른 confusion matrix에서 TP, TN, FP 및 FN을 합산+ confusion matrix을 형성하는 것처럼 사용하고 원하는 메트릭을 계산
- Weighted-averaging : 가중치
- precision
- Macro averaged precision(매크로 평균 정밀도): 모든 클래스의 정밀도를 개별적으로 계산한 다음 평균
- Micro averaged precision( 마이크로 평균 정밀도): 클래스별 참 양성 및 거짓 긍정을 계산한 다음 이를 사용하여 전체 정밀도를 계산
- recall
- Macro averaged recall(매크로 평균 재현율 ): 모든 클래스에 대한 재현율을 개별적으로 계산한 다음 평균
- Micro averaged recall( 마이크로 평균 재현율): 클래스 별 참 긍정 및 거짓 음성을 계산 한 다음이를 사용하여 전체 재현율을 계산
- e F1 score
- Macro averaged F1 score(매크로 평균 F1 점수): 모든 클래스의 F1 점수를 계산한 다음 평균
- Micro averaged F1 score( 마이크로 평균 F1 점수): 매크로 평균 정밀도 점수와 매크로 평균 재현율 점수를 계산한 다음 조화 평균
- 어떨 때 어떤 average를 사용
- Macro average : 일반적으로 모든 클래스가 동일하게 중요한 imbalanced dataset로 작업하는 경우 (앞 선 문제 예시)
- Weighted average : Imbalanced dataset이지만 더 많은 샘플이 있는 클래스에 더 큰 영향을 주는 경우
- Micro average : Balanced dataset이 있고 클래스에 관계없이 전체 성능에 대해 쉽게 이해할 수 있는 메트릭을 원한다고 가정
- Multi class confusion matrix은 누적된 one-vs-rest confusion matrix로 확장가능
- Macro average은 먼저 confusion matrix을 점수로 줄인 다음 점수의 평균을 구함
- Micro average은 먼저 multiple confusion matrix을 single confusion matrix로 줄인 다음 점수를 계산
Classification 모델
- LeNet-5
- 1998년 Yann LeCun 등에 의해 소개된 CNN(Convolutional Neural Network) 아키텍처
- 이미지 분류 및 인식 작업을 위해 특별히 설계된 최초의 딥 러닝 모델 중 하나
- CNN 선구자
- 장점 : 단순성과 효율성 - AlexNet
- 2012년 Alex Krizhevsky et al.에 의해 소개된 CNN(Convolutional Neural Network) 아키텍처
- 이미지 분류 및 인식에 대한 대규모 벤치마크인 ImageNet 데이터 세트에서 상당한 성능 향상을 달성한 최초의 딥 러닝 모델 중 하나
- 획기적인 발전을 이루었으며 이후 이미지 분류 및 인식을 위한 다른 많은 아키텍처에 영감
- max pooling 구현 - VGGNet
- Backbone (feature을 뽑아내는 모델) 으로 많이 씀
- 2014년 Karen Simonyan과 Andrew Zisserman이 도입한 CNN(Convolutional Neural Network) 아키텍처
- convolutional 및 max pooling layer의 여러 스택과 여러 개의 fully Connected Layers 로 구성된 간단하고 균일 한 아키텍처
- 장점 : 간단하고 균일 한 아키텍처로 유명하여 쉽게 구현하고 빠르게 훈련
- 대규모 데이터 세트에서 학습되므로 다른 컴퓨터 비전 작업을 위한 사전 학습된 모델로 사용할 수 있는 전이 학습에 적합 - InceptionNet
- 2014 년 Christian Szegedy et al.에 의해 도입 된 Convolutional Neural Network (CNN) 아키텍처
- 서로 다른 여러 병렬 convolutional branch를 사용 - ResNet (Residual Network)
- 2015년 Kaiming He et al.에 의해 도입된 CNN(컨볼루션 신경망) 아키텍처
- 심층 아키텍처와 심층 신경망에서 일반적인 문제인 소실 그라디언트 문제를 해결하는 능력으로 유명
- 네트워크는 기울기가 사라지지 않고 훨씬 더 깊은 아키텍처를 학습
- 다양한 컴퓨터 비전 작업에서 최첨단 성능을 달성했으며 많은 딥 러닝 애플리케이션에서 여전히 인기 있는 모델
- 전이 학습에 널리 사용되며 많은 컴퓨터 비전 문제의 좋은 출발점 - ResNext (Residual Network with Extreme Feature Reuse)
- 2016 년 Saining Xie et al.에 의해 도입 된 CNN (Convolutional Neural Network) 아키텍처
- 네트워크의 병렬 경로 수를 늘려 네트워크가 기능 간의 더 복잡한 관계를 학습할 수 있도록 하는 것
-> 그룹화된 convolutional을 사용하여 달성
- convolutional filter가 각각 고유한 매개 변수 집합을 사용하여 입력값에 병렬로 적용 - MobileNet
- 2017년 Andrew G. Howard et al.에 의해 소개된 CNN(Convolutional Neural Network) 아키텍처
- 계산 효율적으로 설계되어 계산 리소스가 제한된 모바일 및 임베디드 장치에 배포하는 데 적합 - DenseNet
- 2017년 Gao Huang 등이 도입한 CNN(Convolutional Neural Network) 아키텍처
- 네트워크의 각 계층이 feed-forward 방식으로 다른 모든 계층에 연결되는 조밀 한 연결로 유명 - ShuffleNet
- 2018년 Xiangyu Zhang 등이 도입한 CNN(Convolutional Neural Network) 아키텍처
- 계산 효율적으로 설계되어 계산 리소스가 제한된 모바일 및 임베디드 장치에 배포하는 데 적합
- 크기가 작고 추론 시간이 빠르기 때문에 모바일 및 임베디드 장치에 배포하기에 적합 - SE-Net
- 2018 년 Jie Hu et al.에 의해 도입 된 컨볼 루션 신경망 (CNN) 아키텍처
- 입력의 전역 정보를 기반으로 네트워크의 특징 맵을 동적으로 재보정하여 CNN의 성능을 향상시키도록 설계
- 이미지 분류 및 분할을 포함한 다양한 컴퓨터 비전 작업에서 최첨단 성능을 달성 - EfficientNet
- 2019년 Mingxing Tan과 Quoc V. Le가 도입한 컨볼루션 신경망 (CNN) 아키텍처
- 다양한 컴퓨터 비전 작업에서 높은 정확도를 유지하면서 계산 효율적으로 설계
- 이미지 분류 및 객체 감지를 포함한 다양한 컴퓨터 비전 작업에서 최첨단 성능을 달성
'Coding Study > Machine Learning' 카테고리의 다른 글
부동산 가격 예측 및 원인 분석 (3) | 2024.10.30 |
---|