AI/About
[AI][About] AI 구현 프로세스
y-seo
2023. 7. 18. 10:57
AI 구현 프로세스
- 문제 정의
- 데이터 수집
- 탐색적 데이터 분석 및 전처리
- AI 모델링
- AI 적용
1. 문제 정의
1. 뜻
- 주로 비즈니스적인 성향을 지님
- AI를 사용할 목적과 목표 세우기
- 어떤 방향으로 갈 것인지와 구체적으로 해야 할 것은 무엇인지에 관한 고민
2. AI를 적용할 수 있는 상황
- 데이터나 규칙이 복잡한 상황 → 인간이 프로그래밍 하기 어려워짐
- 다양한 형태의 데이터를 활용하는 상황
- 미지의 영역 연구가 필요한 상황
3. AI를 활용하는 방법
- 예측 : 데이터를 학습하고 규칙을 찾아 결과 예측
- 생성 : 텍스트, 음성, 사진, 동영상 등 생성
- 소통 : 답변과 질문 연출
- 자동화 : 최적화
- 인식 : 대상을 인지하고 상황 판단
2. 데이터 수집
1. 뜻
- 많고 깨끗한 데이터를 모으기
- 다양한 도메인의 데이터를 결합시키는 것도 방법
- AI-Hub (aihub.or.kr)
2. 데이터 종류
- 내부 데이터
- 업무 영역 안에 있는 데이터
- 데이터 수명주기 관리가 용이
- 민감 정보가 포함 가능성 O
- 외부 데이터
- 업무 영역 밖에 있는 데이터
- 데이터 구매 또는 수집 절차 고려
- 공개된 데이터
3. 데이터 수집 방식
- 크롤링
- 여러 웹사이트에서 뉴스, 게시판 등의 웹 문서와 콘텐츠 데이터 수집
- RSS
- 웹사이트에 게시된 새로운 글을 공유하기 위한 프로토콜로 수집
- Open API
- 공개된 API를 이용하여 응용 프로그램을 통해 실시간으로 데이터를 수집
- 스트리밍
- 미디어 데이터(오디오,비디오 등)를 실시간으로 수집
4. 데이터의 상태
- 편향되지 않고 결측치가 없는 데이터
- 편향 : 데이터의 불균형으로 데이터가 특정 값으로 치우쳐진 상태
- 결측치 : 손실되고 비어 있는 값
3. 데이터 분석 및 전처리
1. 뜻
- EDA : 탐색적 데이터 분석
- 데이터 분석을 통해 데이터 이해도를 높이고 어떻게 사용할 수 있을지 가늠하기 위한 행동
- 개별 데이터를 관찰하는 방법, 통계량을 활용하는 방법, 시각화 하는 방법
2. 데이터 타입 확인
- Numerical : 숫자로만 구성
- 연속형 데이터 : 간격 X, 키/시간
- 이산형 데이터 : 셀 수 있는 값, 사람수/물건수
- Object or String : 문자로만 or 문자+숫자, 로그인ID
- Categorical
- Ordinal : 순서/대소를 매길 수 있다, 학점
- Norminal : 순서를 매길 수 없다, 남녀
- Boolean : 참 or 거짓
3. 기술 통계 확인
- 통계적인 방법으로 수집한 데이터를 요약하여 묘사하고 설명
- 데이터가 어떻게 모여 있는지 표현하는 지표
- Mean(평균값) = 산술평균
- Median(중앙값)
- Mode(최빈값)
- 데이터가 어떻게 흩어져 있는지 표현하는 지표
- Minimum(최솟값)
- Maximum(최댓값)
- Variance(분산)
- Standard Deviation(표준편차)
- Quartile(사분위수) : 데이터를 순서대로 배열했을 때 4등분한 지점에 있는 값
- Kurtosis(첨도) : 데이터 분포가 정규분포 대비 얼마나 뾰족한지 정도를 나타내는 값
- Skewness(왜도) : 데이터 분포가 정규분포 대비 얼마나 비대칭한지 정도를 나타내는 값
4. 데이터 시각화
- 히스토그램
- 수치형 데이터의 구간별 빈도수를 나타냄
- 중김과 값의 분포를 확인하기에 용이
- 분포차트
- 수치형 데이터의 구간별 빈도수를 나타냄
- 범주형 데이터를 색상으로 반영하여 해당 구간에서의 빈도수를 나타냄
- 박스차트
- 수치형 데이터를 박스모양으로 나타냄
- 분포와 이상치를 파악하기에 용이
- 지표
- Minimum
- Lower Fence(하단경계) : 박스 바깥의 하단에 있는 선
- Q1, 1사분위수 : 박스 하단 선, 데이터 분포상 25% 수준
- Median, 2사분위수 : 박스 중간 선, 데이터 분포 중 50%에 있는 값
- Q3, 3사분위수 : 박스 상단 선, 데이터 분포 중 75% 있는 값
- Upper Force(상단경계) : 박스 바깥의 상단에 있는 선
- Maximum
- IQR : Q1~Q3 거리
- 이상치 : 통계적으로 하단 경계와 상단 경계를 벗어나는 값, 점으로 표현
- 카운트플롯
- 범주형 데이터 값의 개수를 보여줌
- 산점도
- 두 수치형 데이터 사이의 관계
- 좌표 평면 상에 점으로 표현
- 히트맵
- 두 수치형 데이터 사이의 관계
- 색상 활용
- 상관 관계를 하나의 숫자로 계산하여 표현
5. 결측치 처리
- Drop(제거) : 정보 손실 우려
- Fill(대체) : 평균값, 중앙값, 최빈값 등으로 대체
6. 이상치 처리
- 이상치 데이터 = Outlier : 데이터의 추세나 패턴에서 벗어난 값
- Outlier Detection(이상치 탐지) : IQR 값 활용
- 이상치 처리 : 그대로 사용 or 삭제 or 치환
7. 인코딩
- 문자 to 숫자
- Ordinal Encoding : 순서가 있는 데이터에 적용
- One-hot Encoding : 카테고리 수만큼 0과 1로만 구성된 새로운 칼럼을 만들어 맵핑
8. 스케일링
- 수치형 데이터에 사용
- Min-Max Scaling : 최솟값을 빼고 최댓값-최솟값으로 데이터를 나누기 → 모든 데이터가 0과 1 사잇값이 된다, 이상치 미존재 시 사용
- Standard Scaling : 평균값을 빼고 표준편차값으로 데이터를 나누기 → 평균 0과 표준편차 1로 맞춰진다, 이상치 존재 시 사용
4. AI 모델링
1. 뜻
- 데이터와 알고리즘을 결합하여 인간이 원하는 판단이나 예측을 할 수 있는 모델을 만드는 과정
- 절차
- 정답이 있는 데이터 수집
- 수집한 데이터를 학습용 훈련 데이터셋과 테스트 데이터셋으로 분류
- 훈련 데이터를 바탕으로 알고리즘을 통해 머신러닝을 수행하여 AI 모델 생성
- AI 모델에 테스트 데이터를 입력하여 성능 확인
2. 모델 선택과 학습
- 알고리즘의 선택
- 목적이 예측인지, 설명인지 파악
- 모델 학습
- 혼실 함수를 최소화하는 방향으로
- 지속적인 가중치 업데이트
- 과대 적합
- 훈련 데이터에 대해서는 성능이 잘나오지만 검증/평가 데이터에 대해서는 성능이 낮게 나오는 현상
- 훈련 데이터에 크게 편향된 상태
- Early Stop이나 Drop out과 같은 방법으로 해결 가능
- 딥러닝 하이퍼파라미터
- Epoch : 훈련 데이터를 몇 번 반복해서 학습할지 정하는 파라미터
- Batch size : 데이터를 작은 사이즈로 만들어 훈련을 빠르게 할 수 있도록 하는 데이터 크기, 이 크기 단위로 가중치 업데이트가 일어남
- Early stop : Epoch에 도달하지 않아도 조건을 만족한다면 학습을 종료
- 머신러닝 하이퍼파라미터
- 선형 회귀
- 독립변수와 파라미터의 선형 결합으로 이루어짐
- 로지스틱 회귀
- 분류를 위한 알고리즘
- penalty라는 하이퍼파라미터가 비용 함수의 복잡도를 제한
- KNN
- 분류와 회귀에 모두 사용
- 예측하려는 데이터로부터 가까운 k개의 최근접 데이터 참조
- n_neighbors가 k를 정하는 하이퍼파라미터
- 가중치라는 하이퍼파라미터는 거리에 따라 결정
- 의사결정나무
- 노드를 조건에 따라 분기해나감
- max_depth라는 하이퍼파라미터가 노드의 깊이를 제한
- min_samples_leaf라는 하이퍼파라미터로 끝 노드의 최소 데이터 수 제한
- min_samples_split라는 하이퍼파라미터로 노드별 분기를 위한 최소 데이터 수 제한
- min_impurity_decrease라는 하이퍼파라미터로 최소 분순도 지정
- criterion라는 하이퍼파라미터로 불순도 계산
- 랜던 포레스트
- 의사결정나무 여러 개로 구성
- min_samples_split과 min_samples_leaf가 의사결정나무의 하이퍼파라미터와 동일
- n_estimators라는 하이퍼파라미터가 의사결정나무 개수 지정
- max_features라는 하이퍼파라미터가 고려할 독립변수 수 제한
- 선형 회귀
3. 결과 평가
- 평가 지표 선택
- 회귀 모델 : 평균절대오차, 평균제곱오차, 평균제급근오차, 결정계수 사용
- 분류 모델 : 정확도, 정밀도, 재현율, F1스코어 사용
- 평가 기준 세우기
- 베이스라인 모델과 지속적으로 비교
- 더 나은 모델 만들기
- 더 많은 수의 데이터 사용
- AI 알고리즘 변경
- 하이퍼파라미터 변경
- 피처엔지니어링 : 파생변수 찾기
5. AI 적용
- AI 모델을 시스템화하고 유지보수하는 작업