머신러닝 & 딥러닝

AI 머신러닝에 대하여

O_oz 2023. 12. 19. 11:46
반응형

전통적인 프로그래밍은 프로그래밍 언어로 규칙을 작성해서 데이터를 분류하는 형식이었다

이러한 전통적인 프로그래밍 방법으로는 수많은 요인을 컨트롤 하기는 어렵기 때문에 이를 해결하기 위해 머신러닝을 사용한다

 

머신러닝은 규칙을 직접 찾지 않는다

학습을 위한 데이터셋을 준비하고 데이터마다 레이블을 부여해, 이후 데이터와 레이블을 비교해서 분류를 진행하게된다

 

머신러닝을 공부하면 쉽게 접할 수 있는 단어가 텐서플로이다

텐서플로는 머신러닝을 돕는 프레임워크다

텐서플로 외에 파이토치, 케라스 같은 여러 프레임워크가 존재하고 이러한 프레임워크는 많은 사람들이 접해봤을 거라고 생각한다

나도 역시 텐서플로로 머신러닝을 처음 시작했지만, 여기에서는 인텔에서 만든 OpenVINO라는 프레임워크를 사용한 머신러닝을 기록하려고 한다

 

엄밀히 말하면 딥러닝


 

딥러닝 순서

먼저 딥러닝이 어디에 사용되는지 알아보자

  • Classfication : 어떤 객체인지 카테고리 안에서 분류
  • Object Detection : 객체를 박스 형태로 탐색
  • Segmentation : 객체를 영역으로 탐색
  • Pose Estimation, Text Detection, Action Recognition 등

이러한 분야에 딥러닝을 활용할 수 있는데, 딥러닝의 순서는

데이터 전처리 > 학습 > 최적화 > 추론 (배포)의 과정으로 진행된다

 

학습을 잘 할 수 있도록 학습 이전에 데이터를 처리하고, 학습을 시키면 학습이 잘 됐는지 성능이나 정확도를 확인한다

사용할 수 있을 정도로 성능이 보장된다면 해당 모델을 사용하면 된다


OpenVINO

 

Open Visual Inferencing and Neural network Optimization, 오픈비노는 인텔에서 만든 AI 툴킷으로 인텔 HW에 최적화되어 있다

시중에 텐서플로나 파이토치 등 이미 많이 사용되는 프레임워크가 많은데 오픈비노를 사용하는 이유는, GPU가 없는 환경에서도 CPU만으로 학습이나 추론을 할 수 있기 때문이다

인텔 HW에 최적화 되어있는게 이러한 이유 때문이기도 하다

임베디드 환경이나 GPU를 사용할 수 없는 환경에서는 OpenVINO를 사용한 딥러닝이 속도가 더 좋지 않을까

 

오픈비노는 학습용 툴킷이 아니다

텐서플로나 케라스, 파이토치 등에서 이미 만들어 놓은 모델을 오픈비노용으로 변환 후 추론 작업을 주로 사용한다

상술한 딥러닝 순서에서 예시로 들면 Optimization과 Deployment에만 적용된다는 뜻이다


OpenVINO는 아직 많이 사용되지 않기 때문에, 면접 시 AI 관련 질문에 취약할 수가 있다

텐서플로나 파이토치 공부 과정을 거치고 오픈비노를 사용했을 때, 딥러닝에 대한 전반적인 이해가 가능할 것이라고 생각한다

아무리 좋은 CPU를 사용해서 딥러닝을 한다고해도 좋은 GPU의 성능은 따라가지 못 할것이라고 생각하기 때문에 OpenVINO를 사용하며 Ndivia에서 제공하는 Cuda 같은 프로그램 또한 사용해보면 좋을 것 같다

 

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

[OpenVINO] OTX - Classification  (0) 2024.01.22
[OpenVINO] OTX - Detection  (0) 2024.01.21
[OpenVINO] Datumaro  (0) 2024.01.20
[OpenVINO] CVAT  (1) 2024.01.19