[혼공머신]1주차(chapter 01~02)

장브로·2024년 1월 2일
0

1장

01. 인공지능과 머신러닝, 딥러닝

1. 인공지능의 간략한 역사

"인간처럼 학습하고 추론할 수 있는 컴퓨터 시스템을 만드는 기술" 실직적인 역사는 80년정도 되었으며, 사실상 전자식 컴퓨터의 역사와 발을 맞추어 왔다고 생각해도 별 문제는 없을것 같다.

컴퓨팅 성능의 한계, 전문가 시스템 붐의 거품 붕괴라는 이유로 두번의 겨울을 겪었지만, 98년 LeNet-5, 2012년 ImageNet 등 합성곱 신경망을 이용한 인공신경망 기술의 발전과 실증으로 다시한번 관심을 받게 되었으며 2016년 알파고의 등장으로 크게 유행하게 되었다. 긴 겨울을 겪었던 이전 시대와 달리, 컴퓨팅 성능의 향상과 혁신적 알고리즘의 개발로 인해서 계속해서 새로운 성과가 발표되고, 적용되고 있어 현재로써는 미래가 낙관적이다. 하지만 지금 우리가 보고있고, 경헙하는 인공지능은 인간의 활동을 보조하는 약 인공지능(Weak AI)을 말하고 영화속에서나 나올법한 (ex. 울트론) 일반 인공지능(Artificial General Intelligence) 혹은 강인공지능(Strong AI)의 시대는 아직 오지 않았다. 그저 점점 더 긍정적인 방향으로 나아가고 있을 뿐이다.

2. 머신러닝?

머신러닝이란 인공지능기술의 한 분야다. 규칙을 하나하나 사람이 정하지 않아도, 주어진 데이터에서 규칙을 "학습"하는 알고리즘을 연구하는 것을 의미한다. 수학, 특히 통계학과 관련이 깊지만 최근에는 특히 딥러닝 분야의 폭발적인 성장으로 인해 경험(정확한 수식의 계산보다는 직관의 의한 개발 경험의 조합..을 이야기할까?)을 바탕으로 성장하고 있다고 한다. 파이썬의 점유율이 높다. 사이킷런이 대표적인 파이썬 머신러닝 라이브러리다.

3. 딥러닝?

딥러닝이란 머신러닝분야중, 인공신경망을 기반으로한 방법들을 이른다. 텐서플로우, 파이토치 등 사용하기 쉬운 라이브러리와 프레임 워크들이 오픈소스로 많이 출시되어 있다. 6,7년전 회사에서 Image Matting 에 대해 개발을 할때만 해도 딥러닝을 통한 이미지 처리가 배우기 어렵고 굉장히 난해하다고 생각해서 전통적인 이미지 처리 방식을 이용했었는데, 요즘은 "이미지 처리 = 딥러닝" 으로 공식화가 된것 같다. 또 관련 지식을 얻거나 교육을 받는 것도 일상화가 되어있어 이제는 머신러닝, 딥러닝을 어느정도 알지 못하면 어디가서 개발자라고 말하기 부끄러울 정도!

02. 실습

2장

01. 훈련 세트와 테스트 세트

1. 지도 학습

지도 학습은 입력(데이터)와 타깃(정답)으로 이루어진 훈련데이터 세트가 필요함. 입력으로 사용된 데이터의 각 항들을 특성이라고 한다. (ex. 무게, 길이 등..) "정답을 맞추는 것"이 목표다. 이전 장에서 K-최근접 모델처럼, 데이터를 fit하고 특정 알고리즘을 사용하여 접수를 내어 정답을 판단하는 것이 일반적인 방식인듯

2. 비지도 학습

비지도 학습은 타깃데이터가 없이 입력 데이터만을 이용한다. 정답을 맞출수는 없지만 데이터를 예측하거나 데이터를 변형할 때 사용한다. (책의 2장에서는 자세히 나와 있지 않음)

  • 몇년전 로그 수집 시스템 개발프로젝트에서 이상탐지시 비지도 학습을 이용한다는 내용이 기억이 났다. 그땐 그런가보다 똑똑한 양반들이 알아서 하겠지.. 싶었는데 일반적으로 입력된(학습된) 데이터의 내용을 벗어난 데이터를 예측하기 위해 사용하려면 당연한 방식이었겠다...

3. 강화 학습

은 이책에서 다루지 않는다. 정답세트는 없고, 입력데이터 내에서 알고리즘이 행동한 결과로 얻은 보상을 통해 학습한다고 한다.

4. 훈련세트와 테스트 세트

훈련세트 내용대로 평가를 하면, 학습된 데이터를 기반으로 정답을 판단하기 때문에 100%의 정답률이 나온다. 모델의 제대로된 성능을 평가하기 위해서는 학습되지 않은 데이터로 평가를 해야하는데... 이를 테스트 세트라고 하고, 별개의 데이터를 준비하거나 미리 준비된 훈련세트에서 일부를 떼어 테스트 세트로 활용한다. 각각 데이터의 하나의 튜플을 "샘플(sample)"이라고 보통 칭한다.
샘플이 골고루 섞여있지 않을경우 "샘플링 편향(sample bias)"이라고 부른다.

02. 확인문제

1번 문제 : 지도학습

  • 지도학습 : 입력데이터와 정답데이터가 준비되어있을때, 정답을 맞추기휘한 알고리즘
  • 비지도학습 : 입력데이터만으로 데이터를 예측,변형할때 사용하는 알고리즘
  • 차원축소 : 비지도 학습의 하나로 데이터가 복잡할 경우 특성의 개수를 줄여 가공하는 방법
  • 강화학습 : 입력 데이터 내에서 알고리즘이 행동한 결과로 보상을 통해 학습하는 알고리즘

2번 문제 : 샘플링 편향

  • 훈련세트와 데이터 세트가 고루 섞이지 않아 알고리즘의 성능을 제대로 평가하지 못할 경우를 샘플링 편향이라고 한다.

3번 문제 : 행=샘플 , 열 = 특성

  • 사이킷런의 데이터 배열은 행엔 샘플로, 열엔 특성으로 구성되있다.
profile
이제 진짜 개발하려구요!

0개의 댓글