머신러닝 & 딥러닝
-
PyTorch의 DP와 DDP머신러닝 & 딥러닝 2023. 12. 25. 22:05
DP와 DDP 소개 데이터 병렬 처리(Data Parallelism, DP)와 분산 데이터 병렬 처리(Distributed Data Parallelism, DDP)는 대규모 데이터셋과 복잡한 모델을 더 빠르게 학습하기 위해 널리 사용되는 기술입니다. 이러한 기술은 특히 딥러닝에서 중요한 역할을 합니다. DP와 DDP가 필요한 이유 대규모 데이터 처리: 현대의 기계 학습 모델은 엄청난 양의 데이터를 필요로 합니다. DP와 DDP는 여러 GPU 또는 머신에 작업을 분산시켜 대규모 데이터를 효율적으로 처리할 수 있게 해줍니다. 시간 절약: 모델 학습 시간을 줄이기 위해, 데이터를 분할하여 여러 처리 단위에서 병렬로 작업을 수행할 수 있습니다. 자원 활용 최적화: 가용한 모든 컴퓨팅 자원(여러 GPU 또는 머신..
-
[이미지] 의류 직물 불량 검출하기머신러닝 & 딥러닝 2022. 2. 2. 21:55
1. 문제 정의 양산 초기 품질 확보를 위해공정 검사는 필수적으로 진행되고 있다. 공정 검사는 측정, 육안 검사, 기록, 검사 기기 세팅 등과 같이 분류 되며 대부분 작업자에 의해 수행된다. 하지만, 사람이 하는 일에는 언제나 리스크가 따르듯이, 측정 오차나 기록 실수로 인해 공정 자동화의 필요성이 대두되고 있다. 이 리스크를 줄이기 위해 머신 비전이 도입되고 있는 추세이다. 컴퓨터 비전 기술이나 영상 처리를 통해 공정 검사의 퀄리티를 높일 수 있다. 이 프로젝트는 육안 검사의 리스크를 줄이기 위해, 의류 직물 불량을 검출하는 딥러닝 프로그램 개발을 목적으로 진행되었다. 2. 데이터셋 총 20가지 종류의 직물 데이터셋을 확보하였다. 불량 직물은 총 141개, 정상 직물은 106개로 다소 적은 수의 이미..
-
[CNN] ResNet머신러닝 & 딥러닝 2022. 1. 23. 21:34
ResNet ResNet 등장한 이유 : Network 깊이가 깊어질수록 오히려 성능이 저하되었다. (Vanishing Gradient 문제) ResNet의 주요 특징 : Short cut, Identity Block 구성 Short cut : 이전 layer의 출력이 conv layer로 거치지 않고 그대로 전달 ResNet이란? H(x) = F(x) + x 라고 정의할 때, F(x)를 학습하여 최소화 하도록 residual learning을 구성한 네트워크 ResNet 아키텍처 여러 개의 Identity Block이 연결되어 구성. 이전 입력 값이 Skip Connection을 통해서 Conv Residual block을 skip 해서 output으로 Direct 연결됨. Residual Block ..
-
[CNN] GoogLeNet머신러닝 & 딥러닝 2022. 1. 23. 19:56
GoogLeNet (Inception Module) Inception Module이 연결되어 있는 구조이다. 큰 사이즈의 receptive field가 제공하는 장점은 수용. Weight 파라미터의 수를 줄일 수 있는 네트워크를 구성한다. 여러 가지 사이즈의 필터들을 한번에 결합하는 방식 제공 (inception module) 서로 다른 사이즈의 필터들을 이용해서 feature들을 추출한 뒤 결합 -> 더 성능 좋은 feature extractor layer 구성 가능. 1x1 convolution을 적용하여 파라미터 수를 감소 한다. -> 1x1 convolution은 선행 layer의 특징을 함축적으로 표현하면서 파라미터 수를 줄이는 차원 축소 역할을 수행한다. 1x1 convolution 사이즈는 ..
-
[CNN] VGG머신러닝 & 딥러닝 2022. 1. 23. 19:45
VGGNet 2014년 당시 VGGNet은 GoogLeNet보다 훨씬 간결하다. (성능 차이는 크지 않음) 네트워크의 깊이와 모델 성능 영향에 집중. convolution 커널 사이즈를 3x3으로 고정 했다. 커널 사이즈가 크면 이미지 사이즈 축소가 급격하게 이뤄져서 더 깊은 층을 만들기 어렵고, 파라미터 개수와 연산량도 더 많이 필요하다. 단일화된 커널 크기, padding, strides 값으로 단순한 네트워크 구성을 하지만 AlexNet보다 더 나은 성능. AlexNet의 11x11, 5x5와 같은 큰 receptive field를 가진 커널의 크기를 적용하지 않고도, 3x3 커널을 연속으로 적용. ( receptive field는 입력에서 피처를 만드는 영역의 기본 크기) AlexNet보다 더 깊..
-
[CNN] AlexNet머신러닝 & 딥러닝 2022. 1. 22. 21:49
AlexNet 특징 2012년에 성능 증명. Activation 함수로 ReLU 함수를 첫 사용하였다. MaxPooling, Overlapping Pooling을 적용하였다. Local Response Normalization (LRN) 사용 Dropout Layer, weight에 decay 적용 사용. (이 때 처음 사용) Data Augmentation 적용. 11x11, 5x5 사이즈의 큰 사이즈의 Kernel 적용 (지금은 상상할 수 x). 많은 weight parameter 갯수로 인하여 컴퓨팅 연산량이 크게 증가 함 (그 당시 하드웨어 성능은 좋지 않았음). 이를 극복하기 위하여 병렬 GPU를 활용할 수 있도록 CNN 모델을 병렬화하였다. 전체 프로세스 create_alexnet -> mod..
-
[Image] Albumentations머신러닝 & 딥러닝 2022. 1. 19. 21:55
Augmentation 패키지 Keras ImageDataGenerator 매우 쉽게 Augmentation 수행 임의로 적용되기 때문에 각 기능별로 변확 확률 정할 수 없음. Augmentation 전용 패키지 (Albumentations, ImgAug) 매우 다양한 유형의 augmentation 기법 제공 일련의 augmentation들의 적용 확률 제공 쉽고 편리한 적용 Object Detection, Segmentation에도 사용 가능 Keras Pipeline Integration을 위한 별도의 작업 필요 Tensorflow Image Library 다양한 Image API 기능 제공하며 augmentation 기능 제공 빠른 수행 속도 Keras Layer와 결합되면 GPU 사용 가능 다양한..
-
[Image] 이미지 증강 (Image Augmentation)머신러닝 & 딥러닝 2022. 1. 13. 10:53
데이터 증강 (Data Augmentation) CNN 모델의 성능을 높이고 오버피팅을 극복할 수 있는 가장 좋은 방법은 다양한 유형의 학습 이미지 데이터의 양을 늘리는 것. 이미지 데이터의 경우 학습 데이터 양을 늘리기가 쉽지 않다. Data Augmentation은 학습 시에 원본 이미지에 다양한 변형을 가해서 학습 이미지 데이터를 늘리는 것과 유사한 효과를 발휘하고자 하는 것. Data Augmentation은 원본 학습 이미지의 개수를 늘리는 것이 아니고 학습 시마다 개별 원본 이미지를 변형해서 학습을 수행하는 것. 원본 이미지의 수를 늘리는 것이 아니라, 학습을 수행 할 때마다 개별 이미지를 변형시키는 것. 즉, 색을 변형한걸로 학습 시키고 다음에는 로테이션한 이미지로 학습시키는 방식. Augm..