Artificial Intelligence. 인공지능.
통계학 단일 학과만을 4년 동안(휴학을 좀 많이했는데요) 배운 후, 회사에 입사해서 통계 모델을 만들고, 수치형 데이터 분석을 계속해 온 나에게 인공지능은 가깝지만 멀었다. 애초에 회사에 데이터 사이언티스트와 머신러닝 엔지니어 직군이 따로 있었고, 나는 전자에 속했기 때문에, '인공지능 / 머신러닝' 에 대해서 공부할 필요가 (당장은) 없다고 생각했다.
그런데 DS 쪽을 계속 공부하면 전처리(라 쓰고 노가다라고 읽는)와 인사이트 발굴을 하면서 '통계모델'의 한계를 느꼈다. 비단 모델의 한계뿐 만 아니라도, 데이터를 더 발전된 머신러닝 더 나아가, 딥러닝모델에 적용해보면 어떤 결과가 나올지 궁금해졌다.
홀린듯이 머신러닝/딥러닝 관련 인강을 듣기로 했다. 원래 이런 인강은 정보의 양이 light 하고, deep하지않아 선호하지않았는데, 간단하게 개념을 슥 훑기에 이만한 게 없다고 판단이 되어 듣기시작했다.
내가 신청한 강의는 다음과 같다.
1. 코딩엑스 머신러닝
2. 구글 AI 인증 강사와 함께하는 AI 개발 입문 Full 패키지
각 강의마다 하루에 3개씩 들으려고 노력중이다. (퇴근 후 삶이없어졌다고~)
인공지능이 뭘까?
인공지능을 만드는 법?
- 규칙기반 인공지능
- 데이터기반 인공지능
- 데이터를 기반으로 컴퓨터가 규칙을 스스로 학습(=머신러닝, 기계학습)
인공지능의 성격
- Strong AI
- 인간처럼 스스로 사고, 판단 자아를 가지고 스스로 감정을 가지며 창조를 하는 AI
- Weak AI음성인식 AI, 자율주행 자동차, 알파고 등 활용 목적이 제한적으로 정해진 AI
- 인간처럼 통합적인 지식이 아니라, 특정 항목에 대한 기능만을 가지고 있음
AI 분류와 AI 과제 유형
Supervised Learning 지도학습
데이터에 정답이 있는 경우
- 분류모델 : 주어진 데이터를 정해진 카테고리에 따라 분류하는 문제 (감정분류, 이미지분류)
- 회귀모델 : 주어진 데이터를 분석해 예측 값을 추론하는 문제 (주가예측)
Unsupervised Learning 비지도학습
데이터에 라벨이 없는 경우
- 군집모델 : 데이터들 간의 특징을 추출하여 비슷한 데이터들끼리 군집하는 문제 (K-means clustering)
- 생성모델 : 주어진 데이터를 학습하며 해당 데이터와 유사한 데이터를 생성해내는 모델 (GAN, Auto-Encoder)
Unsupervised Learning 강화학습
- 행동과 그에 대한 보상 값을 활용해 학습하는 방법
- 게임 (알파고, 알파런) , 로봇, 자율주행, 추천 시스템
현재 AI 의 한계점
AI는 설계된 목적 외의 일을 할 수는 없음
ex. 자동차 운행에 대한 학습을 통해 운전기능을 가진 자율주행 자동차
머신러닝이란?
머신러닝(Machine Learning)은 데이터를 재료로 하여 컴퓨터가 능력을 습득할 수 있게 프로그래밍 하는 과학
- 사람 → 무엇인가 이해하고 지식을 습득
- 컴퓨터 → 데이터를 통해 패턴을 찾아 성능이 향상되는 것
기계학습이란 사람처럼 생각하여 학습하는 것이 아닌 반복 계산을 통해 정답으로 가까워지는 과정, 인간이 정해준 조건과 수식에 따라 계산하고 입력 값에 따른 결과를 산출하는 것
데이터의 역할
학습을 위한 자료, 컴퓨터도 많은 데이터, 질 좋은 데이터를 사용할수록 더욱 정확하게 학습을 할 수 있음
머신러닝의 종류
크게 지도학습, 비지도학습, 강화학습으로 구분가능
지도학습
- 학습할 데이터를 제공할 때 정보와 정답을 같이 포함하는 방법
- 컴퓨터는 주어지는 사진 정보를 어떻게 활용해야 정답을 맞출 수 있을지 계산을 통해 점점 학습
- 정답을 맞추기 위해 사용되는 데이터 특성들을 input 특성 (고양이/강아지 사진)
- 정답이 되는 데이터 특성을 output 특성 (Label)
- 지도 학습은 input 특성들을 활용하여 output 특성을 예측
비지도학습
- 컴퓨터에 데이터를 제공할 때 정답을 같이 포함하지 않음
- 데이터들이 얼마나 서로 비슷한지 비교하며 학습
- ex. 소비패턴이 비슷한 고객들 → 군집화 → 광고타겟팅
- ott 추천시스템
강화학습
- 규칙이 정해진 시스템(게임, 바둑 등)에 여러가지를 시도해봄, 그 안에서 데이터 쌓임 → 게임에 대한 보상(점수 등)을 높일 수 있는 방법을 찾아가는 과정
- 강화학습은 사람이 학습하는 방법과 가장 닮았다고 평가받는 학습 방법
- 성공한 경험을 통해 ‘어떤방법으로 하면 성공할 수 있구나!’ 를 깨달음
머신러닝의 프로세스
- 데이터 전처리
- 탐색적 데이터 분석
- 모델 선택 및 구축
- 성능 평가 및 적용
데이터 전처리(Data Preprocessing)
- 지저분한 데이터를 분석이 가능한 형태로 변환, 처리해주는 작업 → 데이터 전처리
- 데이터 정제(cleaning) : 깔끔하게 정제하는 과정
- 특성 엔지니어링(feature engineering) : 분석 목적에 맞게 새로운 특성을 생성하는 과정
- 피쳐 스케일링 (feature scaling) : 특성들의 범위가 다를 때 범위를 맞춰주는 과정
- 더미화 (dummification) : 범주 형태의 데이터를 수치형 0,1 로 바꿔주는 과정
탐색적 데이터 분석 (EDA)
- 사용할 데이터에 대해 이해하는 과정
- 데이터가 가진 특징을 찾고, 패턴을 발견하는 과정
- hist, corrplot, groupby연산 등
모델 선택 및 구축
- 모델(Model)이란 컴퓨터가 데이터를 학습하고 원하는 값을 계산하는 방법(알고리즘)
성능 평가 및 적용
실제 정답과 일치하는 지를 비교, 비슷한 특성들이 가진 패턴을 잘 찾았는지, 보상을 잘 찾아가는 지 등
Maching Learning 분류와 예시
영상데이터 처리 (CV)
- 이미지 분류
- 객체 인식
- 이미지 생성 및 합성
- 영상 데이터를 기반으로 설계된 AI
- 컴퓨터에게는 숫자에 불과한 영상 데이터를 사람이 인식하는 것 같이 변환하여 받아들이는 방식이 핵심
- 상황을 인지, 판단
자연어 처리 (NLP)
- 감정분석/분류
- 기계 번역
- 문장/스토리 생성
- 소설을 쓰는 AI나 자동으로 상담에 응대해 주는 챗봇도 언어 데이터를 활용한 AI
- 글자가 의미를 유지하면서 숫자로 바꾸어내는 작업과 그 숫자들을 통해 사람과 같이 처리하는 부분에 AI가 활용
시계열 데이터 처리 (Time Series Processing)
- 음성인식
- 음성 합성
- 시계열 예측 / 이상치 탐지
음성인식
- 질문을 하면 그에 맞는 답변을 해주는 것
- AI기술이 적용되는 부분은 음성을 인식하는 부분. 사람의 다양한 억양과 말투, 목소리 등이 모두 다르더라도, 같은 의미에 대해서는 동일하게 받아들여야 하기 때문
자동채우기와 추천시스템
- 유사도를 기반으로 한 AI
- 인터넷 검색 시의 자동완성 기능, OTT의 추천시스템 등
- 얼마나 더 개인이 원하는 자동 완성이나 추천을 해주는지가 알고리즘의 완성도를 결정짓는다고 할 수 있음
Google Colab
- 구글 클라우드에서 제공하는 개발 환경
- GPU/CPU Cloud 서버를 사용할 수 있도록 개발 환경을 빌려줌
인공지능 활용하기
인공지능 구성요소
1. AI 알고리즘
- 기계가 학습하는 방법을 결정해 주는 부분
- 알고리즘에 따라 학습 방법도 달라지고 결과를 산출하는 방식도 상이
- 여러 가지 알고리즘을 학습하여 상황과 필요에 맞게 사용
2. 데이터
- 인공지능의 재료
3. 계산 시스템
- 컴퓨터에게 계산을 시키는 방법만 알면 되는 것
도구로서의 AI
- 발표 자료를 작성하기 위해 파워포인트를 사용하는 것처럼, 사진 편집을 위해 포토샵을 사용하는 것처럼 특정 목적을 위해 AI를 사용할 줄 알아야 함
- 지금은 전문가들이 중심이 되어 사용하고 있지만 곧 많은 사람들이 목적을 위해 사용 하게 될 것
파이썬 라이브러리
- Pandas : 데이터를 다루기 위한 라이브러리
- numpy : 넘파이는 푸리에 변환처럼 복잡한 고급 함수를 처리하거나 난수를 생성하는 기능도 가지고 있어서 정말 파이썬의 산술적 계산을 책임지는 근본 , 숫자 형태를 쉽게 다룸 (벡터 등)
- tensorflow : AI의 알고리즘에 해당하는 부분, keras, pytorch 등 딥러닝을 구현할 수 있게 하는 라이브러리, 구글 브레인팀, 인공신경망을 구성할 수 있게 해줌
- scikit-learn : 머신러닝에 적합한 라이브러리
- matplotlib : 데이터 시각화
'Statistics > ML | Python' 카테고리의 다른 글
머신러닝이 뭐여 5탄 (feat. 데이터 종류, 조건을 이용한 추출, 결측치, 이상치) (0) | 2023.02.18 |
---|---|
머신러닝이 뭐여 4탄 (feat. 반복문, 모듈) (0) | 2023.02.18 |
머신러닝이 뭐여 3탄 (feat. 파이썬 연산자) (0) | 2023.02.18 |
머신러닝이 뭐여 2편 (feat. 파이썬) (0) | 2023.02.18 |
머신러닝이 뭐여 1편 (0) | 2023.02.18 |