컴공 전공 공부
혼자공부-머신러닝-딥러닝 ch1~ch3 본문
ch1 인공지능과 머신러닝, 딥러닝
인공지능의 역사
- 1943 ~ 1956: 인공지능 태동기
- 1943: 뉴런의 개념 정의됨
- 1950: 튜링 테스트
- 1956: 다트머스 AI 컨퍼런스
- 1956 ~ 1974: 인공지능 황금기
- 1957: 퍼셉트론 알고리즘 - 인공지능 신경망에 가장 기본이 되는 알고리즘
- 1959: 시각 피질 연구 - 뇌에 어떤 자극이 일어나는지 연구
- 1974 ~ 1980: 1차 AI 겨울
- 컴퓨터 성능의 한계
- 1980 ~ 1987: AI 붐
- 전문가 시스템 개발
- 1987 ~ 1993: 2차 AI 겨울
- 전문가 시스템 실패
- 1998: LeNet-5
- 2012: AlexNet - 이미지 문제 해결
- 2015: 텐서플로 - 딥러닝의 라이브러리
- 2016: 알파고
- 인공지능의 기능- 사람과 구분할 수 없을 정도의 완벽한 지적인 시스템이 아니라 사람의 일을 좀 도와주고 뭔가 반복할 수 있는 반복적인 일 을 도와줌. 즉 사람이 좀 더 안전하고 편리하게 생활을 누릴 수 있는데 도움을 주는 보조적인 역할을 함.
- 인공지능의 종류
강인공지능/슈퍼인텔리전스
약인공지능- 테슬라의 자율주행차, 시리(음성인식) - 머신러닝은 인공지능의 하위 분야이다. 소프트웨어와 관련된 부분 담당
러이브러리 이용함-scikit (파이썬 사용) - 딥러닝- 인공신경망(머신러닝의 하위 분야)
->딥러닝은 많은 알고리즘 중에 인공신경망을 사용하는 부류
ex)알파고
라이브러리로는 TensorFlow/파이토치 사용
ch2 코랩과 주피터 노트북
Colaboratory
-동시에 5개이상의 노트북은 사용할 수 없다.
-import tensorflow/ sklearn 와 같이 라이브러리 불러옴
딥러닝-tensorflow사용
-딥러닝 사용 시 GPU사용: 화면을 랜드링하는 벡터 연산을 빨리 하게 해줌(코랩에서 제공함)
런타임-런타임 유형 변경
ch3 마켓과 머신러닝
머신러닝 프로그램
-전통적인 프로그램: 규칙을 정해둠
예시) if fish_length >= 30;
print("도미")
실제로는 무조건 30이상이면 도미라고 할 수 없다. 즉 머신러닝이 생선을 보고 스스로 도미라는 찾도록 해주는 것(프로그램을 만들어서 규칙을 찾게 해줌->데이터를 이용해서 ->학습/훈련이라 함)
도미 vs 빙어 구분 시
2개의 클래스(class)- 도미/ 빙어
분류(classification)-구분하는 작업
이진 분류(binary classification)- 2개를 분류
도미 데이터
-bream_length
-bream_weight
각각의 데이터를 샘플이라 함.
한 생선의 데이터 : length :25.4 weight: 242.0 이라 할 때 샘플에 있는 길이와 몸무게를 특성이라 함.
특성이 2개 있을 때 잘 표현할 수 있는 방법: 산점도(scatter plot)
import matplotlib.pyplot as plt
smelt_length = [9.8,10.5,11.0,11.2,11.3]
smelt_weight = [6.7,7.5,7.0,9.7,8.7,10.0]
plt.scatter(bream_length, bream_weight)
plt.scatter(smelt_length, smelt_weight)
#하나의 산점도에 두개의 데이터를 중첩해서 나타냄
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
- 도미와 빙어 합치기
-도미와 빙어의 길이와 무게를 하나의 파이썬 리스트로 합쳐야 된다. 왜냐하면 그래야 머신러닝이
두 생선을 구분하는 프로그램을 생성할 수 있다.
->덧셈 연산자로 두 리스트를 합침
length = bream_length+smelt_length
weight = bream_weight+smelt_weight - 리스트 내포 : 리스트 안에 for문
fish_data = [[l, w] for l, w in zip(length, weight)]
→ [[25.4, 242.0], [26.3, 290.0], ...]
fish_target = [1]*35 + [0]*14
- k-최근접 이웃 (머신러닝 알고리즘) : 주변의 클래스를 통해 클래스 중 가장 많은 클래스를 정답
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()
kn.fit(fish_data, fish_target)
kn.score(fish_data, fish_target)
'AI' 카테고리의 다른 글
| 시각화-Bar 차트&seaborn을 활용한 시각화 (0) | 2021.10.31 |
|---|