1. 인공지능 개요
GPT?
GPT란?
- GPT(Generative Pre-trained Transfomer)는 AGI(Artificial General Intelligence) 즉 범용 인공지능을 목표로 만들어진 AI 모델
GPT를 구성하는 3개의 단어
① Generative(생성 모델)
② Pre-Trained(사전 모델) : 사전에 모델을 만들고 이미 존재하는 데이터를 이용해 훈련
③ Transformaer(Transformer AI 모델) : 하나의 알고리즘
Chat GPT 활용 서비스?
``1. **고객 서비스**
- 고객 문의에 즉각적, 정확한 답변 제공
- 웹사이트나 메시징 플랫폼에 ChatGPT를 통합하여 질문에 대한 답변 수행
2.영업
- Large Language Model → 단어를 갖고 다음을 예측하는 모델
- 제품 추천 개인화 및 제품에 관한 질문에 답변
- 고객이 정보에 기반하여 구매 결정을 내리도록하여 전환율 상승
3.마케팅
- 맞춤형 추천 및 메시징 플랫폼을 통한 상호작용
- 마케팅 캠페인 자동화
객체 탐지 (Object Detection)?
한 이미지에서 객체와 그 경계 상자(bounding box)를 탐지
객체 탐지 알고리즘은 이미지를 입력으로 받고 경계 상자와 객체 클래스 리스트룰 출력
경계 상자에 대한 예측 클래스와 클래스의 신뢰도(confidence)를 출력
Applications
- 자율 주행 자동차에서 다른 자동차와 보행자 찾기
- 의료 분야에서 방사선 사진을 사용해 종양이나 위험한 조직을 찾기
- 제조업에서 조립 로봇이 제품을 조립하거나 수리
- 보안 산업에서 위험을 탐지하거나 사람 수를 세기
2. About Artificial Intelligence
인공지능 개념
인공지능:
1950년대에 등장한 개념으로 인공적으로 만들어진 지능을 의미
머신러닝:
데이터를 기반으로 학습해 스스로 발전할 수 있는 방법으로 인공지능을 구현하기 위한 여러 방법 중 하나
딥러닝:
머신러닝의 여러 알고리즘 중 하나로, 사람의 뇌를 모방한 인공신경망의 가장 발전된 알고리즘
인공지능 역사
심볼릭 AI
- 명시적인 규칙을 충분히 갖고 있는 프로그램을 만들면 인간 수준의 인공지능을 만들 수 있을 것으로 예상
- 1950년대부터 1980년대 까지 지배적인 패러다임
- 심볼릭 AI는 규칙이 명료한 논리적인 문제를 푸는 데에는 적합하지만 복잡한 문제는 풀기 어려움
전문가 시스템
- 1980년대에 등장한 새로운 체계
- 인간의 지식을 컴퓨터가 사용하기 좋은 형태로 만들어서 널리 활용하려는 의도를 가지고 탄생
- 방대한 규칙을 세우고, 정보 추가가 어렵다는 단점
머신러닝
- 초기 인공지능 연구는 지능적 에이전트를 만들기 위해 사람이 만든 논리를 컴퓨터에 프로그래밍하는 한계점이 있었음
- 기호 논리학적 추론이 아닌 학습에 기반을 둔 머신러닝을 통해 인공지능을 구현하려는 시도 시작
- 머신러닝은 학습 기반으로 인공지능을 구현하려는 구체적인 방법
인공지능 유형과 예시
지도학습: (분류/회귀) 스팸메일 필터, 유가 예측
비지도 학습: (군집화, 차원 축소) 추천시스템을 위한 협업필터링, 컨텐츠 기반 추천
강화학습: (에이전트와 환경 사이의 상호 작용) 에이전트가 환경으로부터 보상을 최대화
3. Machine Learning
머신러닝 성능 측정 지표
**성능측정 지표**
- 분류: ACCURACY, PRECISION, RECALL, F1 SCORE …
- 회귀: RMSE, MAE, R2 SCORE …
Precision(정밀도) : 투자 종목 추천에서 제일 중요한 지표 (오르는 종목 예측)
Recall(재현율) : 사기거래의 사기를 잡아내는 확률에서 제일 중요한 지표
머신러닝 사례
금융 사기거래 케이스
구분 | 내용 |
---|
기존 프로그래밍 방식의 해결 방안 | 기존 거래의 다양한 거래조건으로 거대한 사기 거래적발 프로그램 구축 |
효율 저하 | 금융사기 전문가는 경험칙에 의해 프로그램 로직을 풀어냄 |
환경 변화 | 수시 변화하는 금융등 환경에 맞추어 로직 수정 및 검증 작업 필요 |
머신러닝 해결방안 | 데이터를 기반으로 통계/수학적 기법을 적용하여 데이터 패턴을 스스로 인지하고 예측 |
스팸 필터 제작 재구성
구분 | 내용 |
---|
스팸 메일의 특성 탐색 | 스팸에 어떤 단어가 나타나는 지 관찰 (신용카드, 무료… 등 단어 / 발송자 이름, 메일주소 등 패턴) |
패턴인식 결과에 따른 분류 | 각 패턴을 감지하는 규칙을 작성하여 패턴 발견시 스팸으로 분류 |
탐색과 분류 작업 반복 | 테스트 및 반복 |
★ 머신러닝 방식 스팸 필터 | 일반/스팸을 비교하여 패턴을 감지하여 스팸 메일 판단의 기준을 학습하여 필터링함 |
| 패턴 발견이 자동화되어 유지보수 용이 및 정확도 향상 |
음성인식
구분 | 내용 |
---|
기존 프로그래밍 | 음성의 특징을 기준으로 사운드의 강도를 측정하는 알고리즘을 통해 하드코딩으로 인식 프로그램 작성 |
| 소음 / 여러 언어 구분 불가, 단어의 발음을 녹음한 샘플을 통해 스스로 학습하게 하는 것이 최선 |
머신러닝 사례 및 기술
생산라인에서 제품 이미지를 분석해 자동으로 분류
뇌를 스캔하여 종양 진단
- 시맨틱 분할 작업
- 합성곱 신경망을 사용하여 이미지의 각 픽셀을 분리
자동으로 뉴스 기사를 분류
- 자연어 처리
- 텍스트 분류 작업
- RNN, 합성곱 신경망, 트랜스포머사용
토론 포럼에서 부정적인 코멘트를 자동으로 구분
긴 문서를 자동으로 요약
챗봇 또는 개인 비서 만들기
- 자연어 이해(NLU)와 질문-대답 모듈을 포함한 자연어 처리 활용
다양한 성능지표를 기반으로 회사의 내년도 수익을 예상
- 회귀
- 선형회귀, 다항회귀, 회귀 SVM, 회귀 랜덤포레스트, 인경신공망
- 지난 성능 지표를 사용할 경우 순환
음성 명령에 작동하는 앱 제작
- 음성인식 작업(오디오 샘플 처리)
- 순환신경망, 합성곱 신경망, 트랜스포머
신용카드 부정거래 감지
구매이력을 기반으로 고객을 나누고 각 집합마다 다른 마케팅 전략 기획
고차원의 데이터셋을 명확하고 의미있는 그래프로 표현
- 데이터 시각화 작업
- 차원 축소 Dimensionality Reduction 사용
과거 구매 이력을 기반으로 고객이 관심을 가질 수 있는 상품 추천
- 추천 시스템
- 과거 구매이력 및 고객 정보를 인공신경망에 학습시키고 구매 가능성이 가장 높은 상품을 출력
- 모든 고객의 구매 이력을 기반으로 훈련
지능형 게임 만들기
- 강화학습
- 시간이 지남에 따라 주어진 환경에서 보상이 최대가 되는 행동 선택 ex) 알파고
4. 머신러닝 학습 구분
지도학습
- 분류(Classification) : 지도학습, 결정 경계를 기준으로 클래스를 분류하는 것
- 회귀(Regression): 예측변수라 부르는 feature을 사용해 target 수치를 예측하는 것
- K-nearest Neighbors, Linear Regression, Logistic Regression, SVM, Decision Tree & Random Forest, Neural Network
비지도학습
- 군집(Clustering): K-means, DBSCAN, HCA, Outlier Detection, Novvelty Detection, one-class SVM, Isolation Forrest
- 시각화 및 차원 축소(Visualization & Dimensionality Reduction): PCA, Kernel PCA, LLE, t-SNE
- 연관 규칙 학습(Association Rule Learning) : Apriori, Eclat
모델 기반 학습
- 선형회귀 모델에 훈련 데이터를 공급하여 가장 잘 맞는 선형 모델의 파라미터를 찾아내는 과정
- 경사하강법을 통해 가중치/편향을 업데이트하면서 최적의 선을 찾아감
머신러닝의 주요 도전 과제
충분하지 않은 양의 훈련 데이터
대표성 없는 데이터
낮은 품질의 데이터
관련없는 특성
테스트와 검증
데이터 분할-훈련세트와 검증
데이터 불일치 문제: garbage in garbage out
공짜 점심 없음 이론: 어떤 데이터에 어떤 모델이 적합한지는 사전에 알 수 없기 때문에, 테스트를 통해 파악해야 함
5. Data Preprocessing
데이터 분석 과정
1.데이터 수집
- 공공데이터 사이트에서 데이터 수집
- CSV 파일 / API를 사용하여 데이터 수집
2.데이터 확인
- 데이터의 내용: .head()
- 데이터 수, 컬럼수, 데이터 타입, 결측치: .info()
- 데이터의 기초 통계, 이상치 여부: .describe(), .boxplot
- 데이터의 분포: histplot
3.데이터 전처리
- 결측치 처리: 제거, 대치(평균값/중앙값/0/ffill, bfill)
- 데이터 타입 변경: astype()
- 스케일링: 표준화, 정규화
- 범주형 데이터 수치화(encoding): label, one-hot
- 신규변수 생성: 집계, 요약, 기간별 구분
4.데이터 시각화
- 수치 데이터 상관관계 분석: pairplot
- 수치 데이터 분포: histplot
- 범주형 데이터 분포: countplot
- Violinplot, swarmplot, boxplot
5.모델 선정
- 데이터 분리: X, y 데이터 분리, train, test 데이터 분리: train_test_split
- 알고리즘(분류/회귀)별 학습 및 테스트 데이터로 예측
- 회귀, 분류 알고리즘에 따른 성능 지표를 기준으로 성능 비교
6.모델 최적화
- 과대적합 여부 확인(학습, 평가 결과 비교)
- 목표값의 클래스 편차가 심할 경우 Sampling 요소 고려
- 과대적합 해소를 위한 규제 적용
- 성능 향상을 위한 하이퍼파라미터 튜닝
6. 인공지능 학습 알고리즘 선정
인공신경망의 역사
Perceptron:
신호(x1, x2)를 입력으로 받아 하나의 신호(y)를 출력하는 기계, 신경망의 기원이 되는 알고리즘초기 퍼셉트론을 이용한 문제 해결은 AND와 OR을 조합해 문제를 푸는 과정
MLP 등장:
다중 퍼셉트론으로 신령망을 쌓아 문제를 해결하는 것이 등장
역전파의 고안:
신경망의 오차를 출력층으로부터 입력층으로 거꾸로 전파시켜 각 레이어의 weight과 bias를 업데이트함vanishing gradient, exploding gradient 문제가 발생
직선에 기반한 결정경계를 가진 데이터는 logistic regression 모델로 학습시켰을 때 결과가 좋음