이번에는 Quantization(양자화), LoRA & QLoRA에 데하여 한번 알아보겠습니다.Quantization(양자화)? Quantization(양자화)는 딥러닝 모델의 메모리 사용량과 계산 효율성을 향상시키기 위한 기술로, 고정 소수점(fixed-point) 숫자 표현을 사용하여 모델의 가중치와 활성화 값을 표현하는 방식입니다. 이는 훈련된 모델의 정확성을 최대한 유지하면서도 성능을 개선하는 것을 목표로 합니다.Quantization(양자화)의 필요성딥러닝에서 Quantization(양자화)가 필요한 이유에 데하여 한번 알아보겠습니다.메모리 절감: 모델 파라미터의 크기를 줄여 메모리 사용량을 절감합니다.연산 속도 향상: 고정 소수점 연산은 부동 소수점 연산보다 빠르기 때문에 추론 속도가 빨라집니..
이번에는 Model Distillation (모델 증류)에 관한 내용에 데하여 한번 설명해 보도록 하겠습니다.What is Model Distillation (모델 증류)? 모델 증류는 딥러닝에서 큰 모델의 지식을 작은 모델로 전달하여, 작은 모델이 큰 모델의 성능을 최대한 모방하도록 하는 기법입니다.이 방법은 큰 모델(교사 모델, Teacher Model)이 복잡한 패턴과 지식을 이미 학습한 상태에서, 그 지식을 작은 모델(학생 모델, Student Model)에 전달하여 더 효율적인 모델을 만드는 것을 목표로 합니다. Model Distillation (모델 증류)의 필요성그러면 Model Distillation (모델 증류)가 필요한 이유는 무엇일까요?자원 효율성: 대형 모델은 높은 성능을 보이지만..
이번에는 Fine-Tuning (파인튜닝)에 데하여 한번 알아보겠습니다. 파인튜닝(Finetuning)은 딥러닝과 LLM 모두에서 널리 사용되는 방법론으로, 이미 사전 학습된 모델을 특정 작업에 맞게 추가 학습시키는 과정을 의미합니다. 파인튜닝은 기본적으로 동일한 원리를 공유합니다. Fine-Tuning? Fine-Tuning(파인튜닝)은 사전 학습(Pre-training)된 모델을 특정한 작업에 맞게 추가로 학습하는 과정입니다.사전 학습 단계에서는 모델이 일반적인 패턴을 학습하고, 파인튜닝 단계에서는 이 모델을 특정한 목적에 맞춰 최적화합니다.이미 사전 학습을 통해 학습된 모델의 일반적인 지식을 활용하여, 새로운 작업이나 데이터셋에 빠르게 적응하는 것이 목표입니다.Pre-Training vs Fine..
Object Detection & Segmentation을 위한 다양한 패키지들Object Detection & Segmentation을 위한 다양한 패키지들이 있습니다.Keras와 Tensorflow 기반의 다양한 오픈소스 패키지들쉬운 활용과 Customization 가능한 장점이 있습니다.다만 Object Detection 알고리즘 별로 서로 다른 패키지들을 적용해야 하는 단점이 있습니다.OpenCV 의 DNN(Deep Neural Network) 모듈간편하게 Object Detection Inference가 가능합니다.다만 학습이 불가능하며 주로 CPU 위주로 GPU 활용이 어렵다는 점이 있습니다.Tensorflow Object Detection API가장 많은 Detection 알고리즘에 적용이 ..
Transfer Learning, 즉 전이 학습은 ML(머신 러닝)과 DL(딥러닝)에서 기존의 Pre-Training 된 모델을 새로운 작업에 재사용하는 기법입니다. 이 방법은 특히 대규모 데이터셋에서 학습된 모델을 작은 데이터셋에 적용할 때 유용합니다.전이 학습은 모델이 사전 학습한 지식을 새로운 문제에 적용하여 학습 속도를 높이고 성능을 향상시킬 수 있습니다.Transfer Learning (전이 학습)기존의 Neural Network(신경망)에서 최상위 부분을 새로 정의한 다음, 이 부분을 Training 시키는 것이 Transfer Learning (전이 학습) 이라고 합니다.이때 Neural Network(신경망)의 하위 부분은 이미 Training된 Neural Network(신경망)을 사용하..
OpenCV 영상 처리 개요한번 OpenCV의 영상처리 방법에 데하여 알아보겠습니다.OpenCV의 VideoCapture클래스는 동영상을 개별 Frame으로 하나씩 읽어(Read)들이는 기능을 제공합니다.VideoWriter는 VideoCapture로 읽어들인 개별 Frame을 동영상 파일로 Write를 수행합니다.VideoCapture.read() - 영상의 다음 Frame을 읽습니다.VideoWriter.write() - 영상의 Frame을 write 합니다.cap = cv2.VideoCapture(video_input_path)…………vid_writer = cv2.VideoWriter(video_output_path, …..)while True:hasFrame, img_frame = cap.read..
Python 기반 주요 이미지 라이브러리크게 3가지가 있습니다.PIL (Python Image Library)주로 이미지 처리만을 위해 사용합니다.처리 성능이 상대적으로 느리다는 단점이 있습니다.Scikit-Image파이썬 기반의 전반적인 컴퓨터 비전 기능 입니다.사이파이(Scipy)에 기반하고 있습니다.OpenCV오픈소스 기반의 최고 인기 컴퓨터 비전 라이브러리 입니다.컴퓨터 비전 기능 일반화에 크게 기여 했다는 특징이 있습니다.(어려운 기능도 API 몇줄로 간단하게 구현이 가능합니다.)C++ 기반이나 Python도 지원합니다. (Java, C# 등 다양한 언어 지원) OpenCV 특징OpenCV (Open Source Computer Vision Library)는 컴퓨터 비전과 머신 러닝을 위한 오픈..
이번글에서는 다양한 CNN 네트워크에 데하여 알아보겠습니다. LeNet 5LeNet-5는 기본적인 CNN 아키텍처를 정의하며, 현재의 딥러닝의 기초가 되었습니다.주로 손글씨 숫자 인식(MNIST 데이터셋) 문제를 해결하기 위해 개발되었으며, 또한 현대 CNN의 기초를 마련한 모델로 여겨집니다.LeNet-5는 총 7개의 레이어(입력과 출력 포함)로 구성된 네트워크입니다.LeNet-5의 구조는 크게 두 부분으로 나눌 수 있습니다.Convolutional Neural Network (CNN)Fully Connected Network (FCN)각 레이어는 특정한 역할을 수행하며, Convolutional Neural Network(CNN - 합성곱 레이어)와 서브샘플링 레이어(Pooling Layer)를 교대로..
이번에는 Convolution Layer, Pooling Layer를 한번 구현해 보겠습니다. Convolution & Pooling Layer 구현해보기4-Dimension Array (4차원 배열)Convolution Neural Network(CNN)에서 Layer 사이를 흐르는 데이터는 4차원입니다.예를 들어서 데이터의 형상이 (10, 1, 28, 28)이면?Height(높이): 28, Width(너비): 28, Channel(채널): 1개인 데이터가 10개라는 이야기 입니다.이를 Python으로 구현하면 아래의 코드와 같습니다.x = np.random.rand(10, 1, 28, 28) # 무작위로 데이터 생성x[0, 0] # 또는 x[0][0] 첫번째 데이터의 첫 채널 공간 데이터에 접근여기에..
Convolutional Neural Network, CNN은 이미지 인식 & 음식 인식등 다양한 곳에서 사용됩니다.특히 이미지 인식 분야 에서 딥러닝을 활용한 기법은 거이 다 CNN을 기초로 합니다.CNN 전체 구조Convolution Layer(합성곱 계층)과 Pooling Layer(풀링 계층)이 이번에 새로 등장합니다.우리가 본 지금까지의 Neural Network(신경망)은 모든 Neuron과 연결되어 있었습니다.이를 Fully-Connected (FC) - 완전연결 이라고 하며, 완전히 연결된 Layer는 'Affine 계층' 이라는 이름으로 구현했습니다.만약 Affine 계층을 사용하면, Layer가 5개인 Fully-Connected Neural Network(FC 신경망)은 아래의 구림과..