컴공 전공 공부

혼자공부-머신러닝-딥러닝 ch1~ch3 본문

AI

혼자공부-머신러닝-딥러닝 ch1~ch3

HUFS_COMPUTERPROGRAMER 2022. 1. 6. 21:15

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