출처 https://www.linkedin.com/pulse/artificial-intelligence-ai-vs-machine-learning-deep-natarajan-siva
머신 러닝(Machine Learning)
- 통계적/ 수학적 기법으로 모형을 설계
- 컴퓨터가 모형을 바탕으로 데이터로부터 학습
ex) y = ax + b (회기분석)
- 학습의 형태(사용도%)
- 지도 학습(90%):x와 y가 짝지어진 형태의 데이터에서 관계를 학습
- 비지도학습(9%) 데이터의 내재적 구조를 학습
ex) Big5 성격 척도 OCEAN(개방, 성실성, 외향성, 친화성, 신경성)
MBTI 에 빠져있는 것(신경성)
- 강화학습(1%) 환경과 상호작용하여 가장 많은 보상을 받는 행동을 학습
ex) 알파고가 바둑을 둘 때(게임엔 승, 패가 있다)
알파고A vs 알파고B
실제로 많이 쓰진 않는다(수천만번의 강화학습을 하기엔 현실적으로 어렵기 때문에)
지도 학습 (Supervised Learning)
- 머신 러닝의 90% 이상을 차지하는 학습 형태
ex) 개인의 금융 생활 정보(x) -> 대출 상환 가능성(y)
지원자의 자기소개서(x) -> 입사 후 인사평가 점수(y)
뉴런 (neuron)
- 동물의 신경계를 구성하는 신경 세포
- 흥분하면 전기 신호가 발생
- 신경 전달 물질을 사용하여 세포 간 통신
인공신경망 (artificial neural network)
- 생물학적 신경망에서 영감을 받은 머신러닝 모델
- 인공 뉴런은 입력값을 가중합하고, 그 결과에 활성화 함수를 적용하여 출력
- 인공 뉴런은 로지스틱 회귀분석과 (거의) 같음
- 다층 신경망: 뉴런들로 이뤄진 층(layer)을 만들고, 이것을 여러 층으로 쌓은 것
→ 딥러닝으로 발전
- 보편근사정리: 충분히 큰 다층신경망은 어떤 함수도 모방할 수 있음
딥러닝 이전과 이후의 특징 추출
- 딥러닝 이전에는 과제 특성에 맞게 여러 단계의 처리 과정을 거쳐 특징을 추출
- 종단간 학습(end to end leaning): 딥러닝에서는 원 데이터를 거의 그대로 입력하여 원하는 출력을 얻음
- 표상 학습(representation learning): 신경망이 과제를 수행하는데 적합한 특징들을 내부적으로 학습
인간과 기계의 학습 방법의 차이
- 스스로 생각하는 존재 인격화된 존재라는 통념
- 인간은 소량의 데이터나 심지어 데이터 없이도 학습이 가능하나 인공지능은 대량의 데이터가 필요 (cf. Zero Shot Learning)
- 인공지능은 좁은 범위의 문제에만 학습이 가능 전이(transfer) 가 어려움
티처블 머신 (teachable machine)
딥러닝 프레임워크
넘파이 (numpy)
- 고성능 수치 연산을 위한 라이브러리
- 머신러닝, 데이터 분석의 기반
- 싱글 코어에 최적화, 병렬 처리는 안됨
- 딥러닝에는 직접 사용되지 않으나, 사용법이 호환됨
판다스 (pandas)
- 표 형태의 데이터에 대한 불러오기, 저장, 정렬, 필터링 등의 기능을 제공
사이킷런 (scikit learn)
- 머신러닝 라이브러리
- 딥러닝을 제외한 머신러닝 전 과정의 기능을 제공
- 대부분의 머신러닝 라이브러리들이 사이킷런과 호환
GPU
- 컴퓨터에서 일반적인 계산은 중앙처리장치 CPU라고 하는 칩에서
- 딥러닝에서는 여기에 더해 GPU라는 칩을 사용(성능은 적어도 갯수로 밀어붙이는 것)
- GPU(그래픽 처리 장치): 원래는 게임 등에서 컴퓨터 그래픽을 처리하는데 특화된 장치
- GPU는 대량의 단순 계산을 병렬로 실행
- 여러 가지 계산을 순서대로 하는 것이 아니라 따로 따로 계산한 다음에 합칠 수 있음
- GPU는 수천 개의 작업을 동시에 수행
- CPU는 병렬 처리에 최적화되어 있지 않으며 처리 능력이 제한
- CPU의 사양을 보면 코어 →쉽게 생각하면 코어 하나가 한 번에 한 가지 계산
- 개인용 PC에서 CPU에 있는 코어 개수는 많아야 열 몇 개 수준
- 최신 GPUGPU에는 몇 만 개의 코어
- 그래픽도 딥러닝과 같이 단순 계산이 많음
- 동시에 여러 가지 계산을 할 수 있는 GPUGPU를 활용하면 높은 성능을 낼 수 있음
딥러닝 프레임워크
- GPU 지원 + 딥러닝 모델을 정의하고 학습시키는데 필요한 다양한 기능들을 제공
텐서플로 (TensorFlow)
- 구글이 개발
- 가장 높은 점유율
- 기업용 기능이 많음
- 페이스북이 개발
- 새로운 모형을 만들기 편리하여 학계에서 인기
작스 (jax)
- 전문가용
- 다양한 수학 계산을 최적화하여 빠르게 실행하는데 초점(속도)
- 딥러닝도 구현할 수 있음
케라스 (Keras)
- 초보자용
- 여러 딥러닝 프레임워크를 같은 방법으로 편하게 사용할 수 있도록 하는 라이브러리
- 현재 텐서플로를 지원 텐서플로에도 케라스가 내장), 신버전부터 파이토치와 작스도 지원
Q. 딥러닝 프레임워크는 파이썬 언어로만 가능한가요?
-> yes or no
새로운 모델을 만들거나 개발, 학습 => 주로 Python
만들어진 모델을 사용 => 다른 언어도 OK
컴퓨터 비전의 개념
컴퓨터 비전 (computer vision)
- 컴퓨터를 이용해 이미지로부터 의미 있는 정보를 추출하는 것
- 생물의 시각에 해당하는 영역을 다루는 인공지능 의 분야
응용: OCR
- 광학 문자 인식(OCR: Optical Character 은 이미지에서 텍스트를 추출하는 기술
- 이미지에서 텍스트를 추출하여 디지털 데이터로 전환할 수 있음
- 이는 다양한 문서 처리 및 정보 수집 작업에 사용
- 예) 회사의 인보이스, 영수증, 합의서 등 다양한 문서들을 디지털화
- 또한, 광학 문자 인식 기술은 비대면 계좌 개설에서 신분증 인식 등과 같은 분야에서도 많이 사용
- 예를 들어, 은행에서는 고객의 신분증 정보를 광학 문자 인식을 이용하여 자동으로 인식
응용: 화상 회의
- 화상 회의 소프트웨어는 오프라인 미팅을 대체하는데 중요한 역할
- 온라인 화상 회의를 기능 중에 배경을 흐리게 하거나 합성하는 기능이 있음
- 과거에는 크로마 키(chroma key) 또는 그린 스크린, 블루 스크린 등이 필요
- 현재는 image segmentation 기법을 이용하여 사람과 배경을 분리하고, 배경을 흐리게 하거나 합성하는 방법이 주로 사용
그래서 AI를 어디다가 활용할 수 있을까? 를 항상 생각을 해봐야 한다
컴퓨터 그래픽 방식
비트맵 방식 (bitmap)
- 이미지를 작은 정사각형 모양의 픽셀이라고 하는 점들로 저장하는 방식
- 각각의 픽셀이 밝기를 가짐
- 픽셀이 꺼지면 밝기 0) 검은 색이 되고, 최대로 켜지면 흰색 그 중간에서는 회색
- 비트맵 방식은 이미지를 확대하거나 축소할 때 왜곡이 생길 수 있음
- 작은 이미지를 크게 확대해보시면 이미지가 흐릿해지는 것을 볼 수 있음
- 또 이미지의 크기가 커지면, 이미지 한 장에 들어가는 점의 개수도 늘어나기 때문에 용량이 커진다는 문제가 있음
컬러 비트맵 이미지
- 여러 개의 픽셀을 합쳐서 표현
- 빛의 삼원색(RGB)
- 빨강(R)
- 초록(G)
- 파랑(B)
- 인쇄용 이미지는 CMYKCMYK를 사용
비트맵 저장 형식
- JPEG (Joint Photographic Experts Group)
- 대부분의 사진이나 이미지에 사용되며, 손실 압축 방식으로 이미지를 압축
- 파일 크기를 줄일 수 있으나, 이미지의 품질을 약간 손상
- GIF (Graphics Interchange Format Format) 와 PNG (Portable Network Graphics)
- 작은 애니메이션 이미지나 로고, 아이콘 등에 사용
- 비손실 압축 방식으로 그래픽이나 웹 디자인에 많이 사용
- WebP
- Google에서 웹 페이지에서 더욱 빠르게 로딩되도록 개발한 영상 이미지 파일 포맷
- 기존의 JPEGJPEG와 PNG, GIF GIF의 장점을 모두 합쳐서 손실 압축과 비손실 압축을 모두 지원
- 더 효율적인 압축 방식을 사용하기 때문에 파일 크기는 더 작고, 이미지 품질은 더 높은 특징
벡터 방식 vector
- 벡터 방식은 이미지를 수학적인 곡선과 모양으로 표현
- 이미지를 확대하거나 축소할 때도 깨지지 않고 선명한 이미지를 유지
벡터 저장 형식
- pdf (Portable Document Format Format) 문서용
- svg (Scalable Vector Graphics) 주로 웹 사이트에서 사용
포인트 클라우드
- 3D이미지에 사용하는 방식
- 각각의 포인트는 이미지의 한 점을 나타내며 색상 정보도 함께 저장
- 주로 라이다 같은 장비로 찍은 이미지를 표현할 때 사용
(살면서 우리가 거의 볼 일이 없다...ㅋㅋㅋ)
컴퓨터 비전 과업
과업 task
- 머신러닝을 통해서 풀려고 하는 문제의 종류나 달성하려는 목표
- 예시:
- 이미지 분류
- 물체 탐지
- 이미지 분리
- 깊이 추정
- 이미지 간 변환
- 이미지 생성