개발자에게 AI 가 중요한 이유
코드 생상성을 높여준다
코드 자동완성, 테스트, 디버깅 등 반복적인 작업을 자동하하여 개발 시간을 단축하고 휴먼에러를 줄임
AI 소통 능력 향상
AI 모델의 특징과 한계등 AI 이해도를 기반으로 특정상황과 요구사항을 명확히 지시하여 원하는 응답을 빠르고 정확히 얻는다
AI 문제 해결 역량 up
ChatGPT API, 오픈소스 LLM 등을 활용하여 복잡한 문제를 효과적으로 해결하고 혁신적인 아이디어를 실현
커리어 경쟁력
다양한 AI 관련 직무와 협엽하여 현업에서 다룰 수 있는 기술 분야를 활용해 개인의 커리어 경쟁력을 강화
활용 분야
Clude Service Provider
- image/Video classification
- speech recognition
- Natual language proc
Medicine
- Cancer cell detection
- diabetic grading
- drug discovery
Media & Entertainment
- video captioning
- content based search
- real-time translation
Security & Defense
- Face recognition
- video surveillance
- cyber security
Autonmous Machine
- pedestrian detection
- lane tracking
- recognize traffic sign
AI ? 첫 번째 관점
기계의 지능을 만드는 computer enginerring field
- 사람의 지능을 모사하고 있다는 관점
사람은 눈으로 세상을 관측 -> 관측한 정보들이 뇌로 감 -> 뇌를 통해 판단을 해서 이미지를 해석함
카메라로 인식 -> GPU, algorithm -> 트리나 그래프로 지식을 표현
2번 째
전통적인 프로그래밍 방식과 비교했을 때 Program을 통해 output을 뽑아내는 것이 아니라
Data와 Output을 먼저 주면서 program을 뽑아냄
머신 러닝과 딥러닝의 차이
사람이 개입하는 정도
머신러닝
데이터를 전처리 해서(Data Processing) 특징 추출(Feature extraction), 특징선별(Featuer selection), 머신러닝 알고리즘으로 학습
딥러닝
데이터의 전처리 없이 알고리즘이 스스로 데이터의 특징점을 찾고
딥러닝도 데이터의 전처리를 하기도함
사람이 개입하지 않아도 학습이 가능한 이유?
End2End
Universal approximator (보편 근사정리)
딥러닝이 특정 조건하에서 거의 모든 수학적 함수를 근사(추정)할 수 있다.
what is AI
Artificial intelligence > Machine Learning > Deep Learning
AI system
- Interface
- Data
- ML algorithms
- infrastructure
- hardware
Perceptron ??
사람의 신경망을 모사한 모델
뉴런- 시냅스 신호 전달 과정
화학 신호를 수상돌기가 수영을 해줌( 수영체를 통해서 수영을 함)
화학 신호를 세포체를 통해서 전기신호로 바꿔줌
전기신호가 축색돌기를 따라서 이동을 해 시냅스에 도달을 함
다른 뉴런으로 신호를 전달할 때 역치값 이상이면 전기 신호를 다시 시냅스에서 화학 신호로 바꿔서 방출을 하면서 다른 뉴런에 전달이 됨
화학 신호 = 입력
전기신호로 바꾼 것 = 입력 데이터 *가중치
이게 역치값 이상이면 전달 = 활성 함수로 구현
퍼셉트론의 활성화 함수
신호가 역치 이상이면 값을 다른 뉴런에 전달하는 것을 모사하기 위해 활성화 계단 함수(step function)을 활용
은닉층이 2개이상이면 딥러닝!!
CNN(Convolution Neural Networks) 학습곱 신경망
이미지를 픽셀별로 잘라서 넣어줬을때 픽셀끼리의 관계를 알지못해 학습에 어려움을 겪고 있었다
이미지를 단위 별로 처리하기 위해 kenel(filter)이라는 신경망을 만들어서 위 문제를 활용
Pooling Layer
큰 이미지를 처리하는 부담을 줄이기 위해 중요한 정보를 요약하고 불필요한 세부 사항을 생략
- 세부적인 특징들을 버리는 것이므로 현대 딥러닝 알고리즘들은 잘 안씀
Receptive field : cnn filter가 보는 영역
AI의 발전 이유!!
- HW
- Data
- Algorithms
Key Components of Deep Leaning
Data : 모델이 학습할 데이터
Model: 입력데이터를 우리가 원하는 출력으로 변환해주는 함수
Loss function: 모델의 출력을 통해 모델이 잘하는지 못하는지 판단해 수치화해주는 함수(매핑)
Algorithm: Loss를 줄여주기 위해 모델을 업데이트하는 방법
AI 디자인 요소 4(3)가지
Data, Model, Loss
Single later neural network (perceptron)
퍼셉트론
- 각 입력 값 x 에 대한 가중치(weight) w 가 존재할 때, 두 값을 곱한 WX벡터의 합으로 구성된 모델
- 즉 선형결합 관계에 있는 가중치로 구성된 모델 (wx +b)
- 활성화 함수 를 통해 특정 입계값을 초과하는지를 기준으로 0 또는 1의 값으록 결과 y 를 출력
- b(bias) 값은 활성화 정도를 조정을 해준다.
선형 모델(단층 퍼셉트론)의 한계
- XOR 연산과 같은 복잡한 관계를 모델로 나타낼 수 없음
- 즉, 현실 세계에 존재하는 데이터들의 복잡한 관계를 충분히 표현 할 수 없음
다층 퍼셉트론
입력 레이어와 출력 레이어만 존재하는 단일 퍼셉트론에 '은닉층' 이라는 중간 레이어 추가
즉, 여러 개의 레이어를 쌓음으로써 단일 퍼셉트론으로 표현할 수 없는 복잡한 연산을 수행할 수 있음
.
손실 함수(Loss)
모델의 출력값과 실제 데이터의 정답 사이의 오차를 계산하는 함수
AI 모델을 학습한다는 것은 주어진 데이터에 대한 정답에 근사한 예측을 할 수 있는 모델을 만드는 것
즉, 손실을 최대한으로 작은 값으로 줄이는 것을 AI 모델의 목표
손실함수 (loss function)의 종류
Regression Task
회귀 (regression)
범주가 아닌 연속적인 수치를 예측하는 태스크
예시) 이미지 안의 고양이수 예측, 9월의 제품 A 판매량 예측
Classification Task
classification
- 주어진 데이터가 어떤 범주(category)에 속하는지 판단하는 테스크
- 로짓(logit)과 확률값(probalility)
- 로짓: 표준화되지 않은 날 것 그대로의 모델 예측값
- 확률: 로짓에 추가 연산(softmax)을 가하여 [0,1] 사이의 확률값으로 나타낸 예측값(차이를 확실히 벌릴려고 softmax 함수 사용함)
Cross entropy
- 분류에 쓰이는 가장 대표적인 손실 함수
- 이진 분류(binary classification)
다중 분류(multi-class classifiction)
Gradient descent
- Loss의 편미분(partial derivatives)은 하나의 파라미터가 Loss가 미치는 영항을 알려줌
- Backpropagation : 모델의 가중치(weight) 업데이트
- Learning rate: 학습률(인공지능 개발자가 설정해야 하는값)
- Learning rate Scheduler: 학습 도중 learning rate(학습률)을 동적으로 조정