728x90
반응형
SMALL
인공지능 기술을 사용하기 위해서는 인공지능 서비스를 위해 사용 가능한 도구와 어떤 기술들이 있는지 부터 먼저 이해해야 함.
2장에서는..
- 인공지능 기술을 개발할 때 많이 활용되는 개발 언어
- 머신러닝이나 딥러닝 적용을 위해 사용되는 대표적인 오픈소스 소프트웨어
- 쉽게 개발하고 활용할 수 있는 클라우드 기반 서비스
에 대하여 알아봄
2.1 인공지능 적용 기술의 분류
- 플랫폼(Platform)
- 데이터 수집, 저장 및 데이터 분석까지 포함하는 기반 환경
- 인공지능의 머신러닝 및 딥러닝 기술 포함
- 도구, 프레임워크 등 이후 분류들을 모두 포괄하는 가장 큰 구조로 통상적으로 분산 환경을 지원
- 도구(Tools)
- 인공지능 프로그램을 쉽게 개발할 수 있도록 지원하는 개발 도구
- 서비스 운영 및 개발 환경을 구성하기 위한 편의성 제공
- 프레임워크(Framework)
- 머신러닝 및 딥러닝 알고리즘을 학습하고 실행할 수 있도록 개발된 전문화된 소프트웨어
- 언어(Language)
- 인공지능 개발에 활용되는 개발 언어
- 자바, C, R, 파이썬 등
- 포맷(Format)
- 데이터를 잘 다루기 위한 라이브러리
- 대량의 다차원 데이터를 좀 더 편리하게 다룰 수 있도록 지원
- 클라우드 서비스(Cloud Service)
- 분산 클라우드 환경을 지원하는 인공지능 서비스
- 이미 학습이 완료된 모델 형태의 서비스부터 딥러닝을 분산 환경에서 쉽게 개발, 학습 및 배포 서비스까지 할 수 있는 SaaS(Software as a Service) 및 Paas(Platform as a Service) 환경을 의미
2.2 인공지능 개발을 위한 분산 플랫폼 환경
- 인공지능 기술 개발을 위해서는 대량의 데이터,이를 위한 저장소, 분산된 GPU 서버 환경이 필요함
- 단독 머신에서 학습하려면 저장소의 한계와 오랜 시간이 소요
→ 규모가 있는 인공지능 개발 환경을 구축하기 위한 분산 환경이 필요
이를 위해 빅데이터 분석 플랫폼들은 데이터 수집, 저장, 분석을 위한 분산 환경을 지원
- 스파크(Spark) : 스파크 머신러닝 프레임워크를 통해 전통적인 머신러닝 알고리즘 수행 가능
- 하둡(Hadoop) : 머하웃(Mohout), Deeplearning4j와 같은 머신러닝 프레임워크 사용 가능
- 쿠다(CUDA) : GPU 전문 기업인 엔비디아(NVIDIA)에서 개발하여 프레웨어로 제공
2.3 인공지능 개발을 지원하는 도구
인공지능 알고리즘을 개발하고 테스트하는 데 도움을 받을 수 있는 도구들
- 주피터 노트북(Jupyter Notebook) : 웹 개발의 애플리케이션으로 코드와 문서를 동시에 작성하고 실행 가능
2.4 딥러닝과 머신러닝 전용 프레임워크
그림은 대표적인 인공지능 프레임워크 기술의 발전 역사를 나타냄
2015년도 구글에서 발표한 텐서플로(Tensorflow)는 개발이 크게 확장되는 계기가 되었음
최근에는 파이토치(Pytorch) 활용도가 높아지고 있음
- 카페(Caffe)
- 장점
- 빠른 속도와 모듈성을 내세운 인공지능 프레임워크
- C/C++로 작성되어 있음
- 프로그래밍 대신 설정 파일로 학습 방법 정의
- 카페 모델 주(Caffe Model Zoo)를 통한 다양한 사전 학습 모델 제공
- 파이썬 연동을 통한 용이한 개발
- 이미지 분류를 목적으로 개발 - 이미지 분류 작업에서 탁월한 성능을 입증받음
- 단점
- 1GB 이상 GPU메모리 필요
- 이미지 이외의 텍스트, 사운드 등의 데이터 처리에는 부적합
- 유연하지 못한 API
- 문서화 부족 - 지원 받기 힘들고 설치 과정도 매끄럽지 못함
- 순환 신경망 성능이 좋지 못함
- 장점
- Deeplearning4j(DL4J)
- 장점
- 자바 기반으로 쉬운 이식성(Portability) 및 엔터프라이즈 시스템 수준의 안정성 제공
- 스파크 기반의 분산 처리 지원
- 문서화가 잘 되어 있음
- 학습 디버깅을 위한 시각화 도구 DL4J UI 제공
- 단점
- 기반이 되는 테아노, 텐서플로에서 문제 발생시 디버깅 어려움
- 장점
- 텐서플로(TensorFlow)
- 장점
- 추상화된 그래프 모델
- 데이터 및 모델의 병렬화 처리
- 학습 디버깅을 위한 시각화 도구 텐서보드(Tensorboard) 제공
- GPU 지원
- 방대한 사용자 커뮤니티
- 단점
- 토치(Torch)에 비해 처리 속도가 느림
- 비교적 빠르지 않은 성능
- 사전 학습된 모델이 많지 않음
- 세션을 이용한 부자연스러운 코딩 스타일
- 장점
- 테아노(Theano)
- 장점
- 추상화된 그래프 모델 지원
- 데이터를 탐색하거나 수치 계산에 매우 유용
- 단점
- 다중 GPU 미지원
- 부족한 사전 학습 모델
- 부적절한 에러 메시지로 인해 에러를 수정하기 어려움
- 장점
- 토치(Torch)
- 장점
- 알고리즘 모듈화가 잘 되어 있어 사용이 용이
- 다양한 데이터 전처리 및 시각화 유틸리티 제공
- OpenCL 지원
- 모바일 지원
- 단점
- 협소한 사용자 커뮤니티
- 연구용으로 적합
- 생소한 루아(Lua) 언어(파이토치는 파이썬)
- 부족한 문서화
- 장점
2.5 인공지능 개발을 위한 프로그램 언어
- 파이썬
- 사이킷런(scikit-learn) : 파이썬의 표준 머신러닝 라이브러리, 대부분의 머신러닝 모델을 제공
- 넘파이(Numpy) : 과학 계산용 파이썬 라이브러리
- 판다스(pandas) : 데이터 처리와 분석을 위한 파이썬 라이브러리
- 맷플롯립(matplotlib) : 파이썬에서 자료를 차트(chart)나 플롯(plot)으로 시각화하는 라이브러리
- R
- 셀레늄(Selenium) : 웹크롤링 패키지
- Ggplot2 : 데이터 시각화 패키지
- C50 : 의사결정나무 알고리즘 패키지
- E1071 : 서포트 벡터 머신(SVM)과 나이브 베이즈(Naive Bayes) 알고리즘 패키지
- 자바
- 아파치 머하웃(Apache Mahout) : 클러스터링, 분류 등 대규모 데이터 처리 알고리즘 제공
- 아파치 스파크(Apache Spark) : 실시간 데이터 스트림 처리, 분류, 회귀 알고리즘 제공
- DL4J(Deeplearning4j) : 자바와 스칼라로 작성된 오픈소스 딥러닝 라이브러리. 아파치 스파크와 하둡 포함
- C/C++
- Eblearn : 뉴욕대학 머신러닝 연구소의 오픈소스 C++ 라이브러리. 이미지 인식 특화
- Shogun : C++구현, 다양한 언어와 운영체제 지원, 통합된 인터페이스 제공
- Dlib : 광범위한 머신러닝 알고리즘 포함. API를 통해 사용하기 쉽게 설계, 얼굴 인식 분야에서 인기
2.6 데이터를 효과적으로 다루기 위한 포맷
- 판다스(Pandas) : 테이블 형태의 데이터를 다루기 위한 데이터프레임 자료형 제공
- 넘파이(Numpy) : 대량의 수치 데이터를 저장하고 수치 해석, 선형대수 등이 계산을 수행하게 해주는 파이썬 언어 지원
2.7 접근과 사용이 용이한 클라우드 기반 인공지능 서비스
- 인공지능 SaaS API서비스
- 아마존 웹서비스(AWS) : 자연어 처리, 음성 인식, 이미지 처리, 이미지 인식, 음성 합성, 머신러닝 등의 API 제공
- 구글 클라우드 플랫폼 : 이미지 검색, 음성 인식, 머신러닝 등 기능을 자사 서비스에 적용하며 클라우드 서비스로 제공
- 마이크로소프트 애저 : 비주얼 스튜디오의 경험을 살려 애저 머신러닝 스튜디오 서비스를 지원
- 챗봇을 위한 인공지능 서비스
- 아마존 렉스 : 알렉스를 기반으로 음성이나 텍스트를 이용한 대화 기능을 인공지능 기술로 구현한 서비스
- 애저 봇 서비스 : 별도의 서버 구성 없이 사전에 정의된 템플릿을 이용해 빠르게 챗봇을 구성할 수 있는 기능 제공
- 클라우드 서비스로 제공하는 딥러닝
클라우드를 이용한 인공지능 구현은 환경 구성 시간을 아낄 수 있을 뿐만 아니라 분산 환경을 통해 대량의 서버를 활용할 수 있으며 손쉬운 서비스 연결이 가능하다는 장점이 있다.- AWS 딥러닝 AMI : Amazon Clowd Formation을 통해 딥러닝을 위한 스케일 확장 및 분산 처리 지원
- 마이크로소프트 애저 머신러닝 : 마이크로소프트 애저 클라우드에서 여러 딥러닝 엔진들을 파이프라인으로 구성해 학습 및 테스트를 수행해 볼 수 있는 서비스, 그래픽 UI를 이용해 흐름을 구성할 수 있어 쉽게 개발 가능
- 구글 클라우드 머신러닝 엔진 : 텐서플로를 클라우드 기반 서비스로 제공
- 딥러닝과 머신러닝을 위한 통합 도구
- AWS의 세이지메이커 : 아마존 웹 서비스에서 제공하는 플랫폼으로 주피터 노트북을 개발도구로 제공
- 구글 코랩 : 주피터 노트북 기반의 머신러닝 개발, 테스트 및 학습 환경 제공
- 백엔드 AI : 주피터 노트북 기반의 개발이며 설치된 gpu와 cpu 자원을 공유할 수 있는 환경 제공
- Acculnsight+ : 데이터 수집, 처리, 분석 및 시각화 지원
728x90
반응형
LIST
'정리 > 실무가 훤히 보이는 머신러닝&딥러닝' 카테고리의 다른 글
6장_텐서플로를 이용한 이미지 객체 추출 (0) | 2023.03.02 |
---|---|
5장_딥러닝을 이용한 이미지 분류 (0) | 2023.02.28 |
4장_비지도학습을 이용한 군집화 (0) | 2023.02.27 |
3장_머신러닝의 이해와 지도학습을 이용한 분류 (0) | 2023.02.21 |
1장_인공지능이란 무엇인가 (0) | 2023.02.02 |