인공지능과 머신러닝 + 파이썬 복습
1. 인공지능, 머신러닝, 딥러닝의 정의 및 관계
인공지능(Artificial Intelligence): 인간 지능을 모방하여 수행하는 작업 또는 시스템을 의미하며, 더 넓게는 인간처럼 사고하고 예측하려는 컴퓨터 기술 전반을 지칭합니다. 이는 학습, 문제 해결, 추론, 지각 능력을 구현하려는 기술을 포함합니다.
- 강 인공지능: 자의식이 있으며 일반적인 문제 해결이 가능한 이론적 기술입니다
- 약 인공지능: 자의식이 없으며 특정 영역의 문제를 해결하는 현재 대부분의 인공지능 기술입니다
머신러닝(Machine Learning): 인공지능의 한 분야로 데이터 학습을 통한 예측이 가능하도록 하는 기술입니다. 1959년 아서 사무엘에 의해 만들어졌으며, 대량의 데이터를 학습한 후 기계가 스스로 결과를 추론할 수 있도록 합니다. 학습 가능한 데이터가 증가할수록 알고리즘의 성능이 향상됩니다.
딥러닝(Deep Learning): 머신러닝의 한 분야로 인공신경망을 통하여 비선형 데이터에 대한 유의미한 분석 및 예측이 가능하도록 하는 기술입니다. 인공신경망을 이용하여 데이터를 심층적으로 학습하고 결과를 예측하며, 이미지, 음성, 자연어 등 학습이 가능합니다. 수백만 개의 뉴런을 이용한 학습과 유사합니다.
관계 요약: 인공지능은 가장 큰 개념이며, 머신러닝은 인공지능의 하위 분야, 딥러닝은 머신러닝의 하위 분야입니다.
2. 머신러닝 기술 종류
머신러닝은 크게 세 가지 유형으로 분류됩니다.
지도 학습(Supervised Learning)
개념: 정답지가 있는 데이터를 활용하여 데이터 학습합니다. 입력값(x)과 정답지(y)가 함께 제공되며, 정답지를 'target' 또는 'Label'이라고 부릅니다.
종류:
- 분류(Classification): 이진 분류나 다중 분류가 가능하며, KNN, 나이브 베이즈 등의 알고리즘이 있습니다 (예: 스팸메일 분류)
- 회귀(Regression): 연속된 값들이 주어진 경우에 사용되며, Linear Regression, Logistic Regression 등이 있습니다. 입력값에 대한 결과를 실수 등으로 추정합니다 (예: 강수량에 따른 쌀값 예측)
비지도 학습(Unsupervised Learning)
개념: 정답이 없는 데이터를 활용하여 데이터를 군집화하고 새로운 데이터에 대한 결과를 예측합니다. 입력값(x)으로부터 패턴이나 형태를 찾아 학습합니다.
종류:
- 군집화(Clustering): 입력 데이터에 대해 여러 개의 클러스터(부분 그룹)로 나눕니다 (예: k-Means). (예: 고객에 대하여, 성별, 연령별 변수에 따라 고객군 그룹화)
- 차원 축소(Dimensionality Reduction): 다차원(여러 개의 변수)의 수를 축소하여 분석과 시각화를 쉽게 합니다 (예: PCA, NMF). 속성 간 유사성/비유사성을 측정하여 속성 간 거리를 최대한 유지합니다
강화 학습(Reinforcement Learning)
개념: 입력 데이터에 대한 정답 데이터가 존재하지 않으며, 입력데이터에 대한 행동을 통하여 보상(reward)을 받으며 학습합니다. User(agent)가 게임의 환경(environment)에서 현재(state) 가장 높은 점수(reward)를 얻는 패턴을 학습하며 행동(action)하는 학습 방법입니다.
사례: 알파고, Game AI, 로봇 내비게이션 등
3. 인공지능의 다양한 적용 사례
인공지능 기술은 이미 다양한 분야에서 활용되고 있습니다.
- AI 에이전트: 브라우저 내에서 업무 자동화 및 주문/예약 수행 (OpenAI Operator)
- 자율주행 자동차: End-to-end 뉴럴 네트워크 기반 자율주행 (테슬라 로보택시). 라이다, 레이더 등 고가 센서 없이 카메라와 FSD 컴퓨터로 인식합니다
- 헬스케어: 의료계 비대면 진단 및 수술, 약 처방, X-ray, CT 데이터 학습, 환자 컨디션 및 회복 속도 예측 등
- 인공지능 반려 로봇: 딥러닝 알고리즘 기반으로 정서적 교감 및 사회적/정서적 보조 역할 수행. 감성 인공지능, 자연어 처리, 컴퓨터 비전 기술 활용
- 스마트 홈: AI와 로보틱스 융합으로 집안일 보조, 사람과 객체, 손동작, 표정 등 인식
- 스마트 그리드: 전기, 가스 등 전력망을 스마트하게 조절하여 전력 소모 스케줄링 및 환경 문제 대응 (예: 발전 시설 가동 시점 및 규모 계산)
- 기타: 스마트 팜, 인공지능 게임, 스마트 팩토리, 쇼핑몰 추천 알고리즘, 범죄 예방, 챗봇 등
4. 머신러닝을 위한 파이썬 핵심 기술 복습
기본 문법
기본 연산자(+, -, *, /, //, %), 변수(자동 자료형 변경), 주석(#, ''' ~ '''), 조건문(if, elif, else), 반복문(for, while), 사용자 정의 함 수(def), 클래스(class)를 포함합니다.
주요 자료형
리스트(list)
순서 있는 값들의 목록으로, 생성, 삽입, 삭제, 수정, 인덱싱, 슬라이싱이 가능합니다.
예시: a=[1,2,3]
튜플(tuple)
순서 있는 값들의 목록으로, 생성, 추가(튜플+튜플), 인덱싱, 슬라이싱이 가능하지만, 기존 목록에 대한 값 변경 불가합니다.
예시: a=(1,2,3)
참고: 1개의 값만 가질 때는 값 뒤에
,를 붙여야 합니다 (a=(1,))
딕셔너리(dict)
순서가 없는 값들로, key:value 쌍으로 나열됩니다. 수정, 삽입, 삭제, key에 의한 value 검색이 가능하지만, 인덱싱, 슬라이싱은 불가합니다. key는 고유해야 합니다.
예시: a={'name':'hycu', 'phone':'0222901111'}
집합(set)
순서가 없는 값들로, 중복된 자료 허용 불가합니다. 생성, 삽입, 삭제, 수정이 가능하며, 합집합, 교집합, 차집합 등 다양한 집합 연산이 가능합니다.
예시: a={1,2,3} 또는 a=set([1,2,3])
참고: 인덱싱을 위해서는 리스트나 튜플로 변환해야 합니다
5. 추가 학습 및 실습 자원
딥러닝 모델링: 텐서플로, 케라스 등을 통한 딥러닝 모델링과 인공신경망 기반의 다양한 딥러닝 기술을 학습합니다.
실습 도구
- 티쳐블 머신: https://teachablemachine.withgoogle.com/
- 텐서플로 플레이그라운드: https://playground.tensorflow.org
- Keras.js: https://transcranial.github.io/keras-js/#/