AI - AI알고리즘의 이해와 실습

hanss·2022년 4월 5일
0

학습내용

  • 각종 평가 지표

  • Accuracy(정확도) - 가장 중요하다, 보통 정확도를 보고 맞춘다

  • auc - 전체 면적에 얼마나 커버되어 있는지를 확인한다.

  • 그래프 자체는 ROC라고 부른다

  • 값 자체는 크면 클 수록 좋다, 100프로가 나오기 어렵지만 100가 나오는게 좋은 모델이다.
    하지만 100프로가 무조건 좋은 것은 아니다.
    만약 100프로가 나온다면 해당 모델은 우리가 현재 가지고 있는 데이터에만 맞는 모델일 수 있으며
    새로운 데이터가 들어온다면 정확도가 낮아지는 모델일 수도 있기 때문이다.

  • 용어
    Overfit - 해당 데이터에만 너무 딱 맞춰진 것
    Underfit - 해당 데이터에 대해 학습이 너무 안되어서 정확도가 떨어진 것
    오버피팅의 경우 오히려 학습을 덜 시켜야하고
    언더피팅은 학습을 더 시켜야한다.

전처리 작업 / Orange 사용


1. datasets에 iris 데이터 연결
2. 데이터 샘플러를 연결해서 데이터를 샘플링한다

  • 데이터 샘플러 화면 설명

fixed propotion of data : 퍼센티지가 전체데이터 중 몇퍼센트를 학습으로 쓸지 결정한다
제일 하단을 보면 전체 데이터 150 중 120개는 학습, 30은 샘플로 한다 결정됨을 알 수 있다.

fixed sample size : 개수로 나누는 것

crosse validation :
subset 10라고 잡으면 데이터를 10개 단위로 끊어서 숫자를 매긴다
그리고 1번을 제외한 나머지로 학습하고 1번을 가지고 테스트한다
그 다음 2번을 제외한 나머지로 학습하고 2번을 가지고 테스트한다
이것을 반복하고 이것들을 합쳐서 결과를 낸다. 그래서 시간이 걸리는 편이다.
총 데이터 150개에 10마다 끊으면 15번하고 결과를 내는 것이다.

  1. 데이터 셋을 바로 데이터테이블에서 연결해서 보면 총 데이터 150개 다 보이는데
    데이터 샘플러에 연결한 데이터 테이블을 보면 데이터가 120개로 나온다.

  2. 데이터 샘플러와 트리를 연결하고 트리와 테스트 스코어 연결한다.

  3. 데이터 샘플러와 테스트 스코어 연결한다.
    데이터 샘플러와 테스트스코어 연결선 더블클릭해서 리메이닝데이터(테스트데이터)와 테스트 데이터 연결
    테스트스코어 더블클릭해서 테스트 온 테스트 데이터 누르면 테스트 데이터의 정확성을 볼 수 있다
    (데이터를 다 넣어주면 트리와 데이터 샘플러의 연결을 끊어줘도 된다)

6 이제 이 결과가 얼마나 정확한지 보려면 컨퓨젼 매트릭스로 확인해 볼 수 있다
테스트스코어와 컨퓨전 매트릭스 연결해서 확인한다.

딥러닝

ai 얘기가 나오기 이전부터 신경망에 대한 이야기는 1940년부터 나왔다.
뇌세포 하나하나를 구현하는 것을 perceptron이라고 불렀다.
그러다 perceptron으로는 풀 수 없는 논리적 한계에 부딪혔다. 이 문제를 XOR problem이라고 한다.
이때 사람들이 많이 떠났으며 이 시기를 다크에이지(ai의 겨울)라고 한다.(1970년~1980년초반)
이후 이 문제를 논리적으로 풀 수 있다고 주장하는 사람들이 나왔다. (D. Rumellhat, G. Hinton, R. Wiliams)
이들은 신경 여러개를 모아서 다발로 사용하면 로직의 문제가 해결된다는 것을 찾아냈다.
인공신경 여러 계층을 묶어서 쓴다하여 'Multi-layered Perceptron'이라고 하였다.
Multi-layered Perceptron을 인공신경망이라고도 한다.

그 중 한 명인 Geoffrey Hinton은 2008년 정도에 제대로 학습하는 것을 만들어냈다.
인공신경을 여러 계층으로 만들어서 심층적인 문제를 풀 수 있다라는 것을 증명해 냈고 그걸로 인공신경망을 만들어 깊이있는 문제를 풀 수 있다하여 'Deep Learning'이라는 이름을 붙였다.
제프리 힌턴 => 딥러닝의 아버지

딥러닝에 사용되는 프레임워크

  • TensorFlow, Keras, PyTorch, ONNX(오닉스) 를 주로 쓴다.
    TensorFlow, Keras, PyTorch는 서로 호환이 안된다.
    프레임워크 상관없이 쓸 수 있는 공통된 타입을 만든 것이 ONNX이다.
    TensorFlow, Keras, PyTorch로 만들어 ONNX 형태로 출력해서 사용한다.

신경망(Neural Network)

딥러닝의 가장 기본 개념 신경(Neural)
뉴런은 입력치가 임계점을 넘으면 신호를 보내는데
꾸준한 입력이 들어오는 신경은 가중치를 더 두어 입력치가 임계점을 넘지 않더라도 신호를 보내도록 한다.

학습후기

강사님이 재미있게 예시를 들어 설명해주셔서 강의를 들을 땐 이해를 했다고 생각했는데 아직 개념이 확실히 자리잡지 않은 건지 아직 용어가 아직 익숙하지 않아서인지 clasification이 분류였는지 회귀였는지 헷갈리고 지도학습인지 비지도학습인지도 계속 헷갈린다.
그래서 영어단어 공부하듯이 자주 보며 외우려고 메모지에 적어놓았다.

Supervised Learning 지도학습
: 문제(feature)와 정답(label) 제공
1 Clasification 분류
고양이사진을 계속 보여주며 이것은 고양이라고 학습시킴
2 Regression 회귀
키에 따른 신발 사이즈
시간에 따른 커피 소비량

profile
열심히 하는 중

0개의 댓글