Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ultrasonic
- 비지도학습
- 화소점
- svm
- 머신러닝
- 2차배열
- orcad
- 코딩
- 포인터란
- C언어
- 포인터
- c++
- 지도학습
- 딥러닝
- 거리 측정 회로
- 이미지 처리
- 앰보싱
- 전기의 기본 성질
- 포인터 쓰는 이유
- 사진수정
- 신경망
- 첫 수업에서 배운 내용
- 2차 배열 코드
- 머신러닝 기초
- 전류
- 동적할당
- 초음파 회로
- 열심히 하자
- 주저리 주저리
- 고민이 많다...
Archives
- Today
- Total
매일공부
[머신 러닝] 머신러닝을 알아보자 본문
1. 머신러닝이란?
- 인공지능(AI)의 하위 집합으로 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있또록 하는 알고리즘을 개발하는 연구 분야
2.학습 종류에 따른 분류
- 기계학습 문제들은 학습 종류에 따라 지도학습(문제와 답이 존재), 비지도 학습(문제는 존재하지만 답은 알아야함) 강화학습(문제도 답도 알아서 찾아야함) 3가지고 나뉜다.
- 이 때 지도 학습과 비지도 학습은 레이블(label)의 유무에 따라 나뉜다.
- label: 학습 데이터의 속성을 무엇을 분석할지에 따라 정의되는 데이터를 말한다.
- 2_1 지도학습
- 사람이 교사로서 각각의 입력(x)에 대해 레이블(y)를 달아 놓은 데이터를 컴퓨터에 주면 컴퓨터가 그것을 학습하는 것
- 사람이 직접 개입하여 정확도 높은 데이터를 사용할 수 있다는 장점이 있다.
- but 직접 레이블을 달아야하므로 인건비 문제가 있고 데이터 양이 적다.
- 분류(classification): 레이블 y가 이산적인 경우(y가 가질 수 있는 값이 [0,1,2,...]와 같이 유한한 경우 ) 분류 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며 연구가 많이 되어있고 기업들이 가장 관심을 가지는 문제 중 하나이다
○주차시에 번호판 인식, 페이스북 구글 등의 얼굴 인식, 음성 인식 등.. - 회귀(Regression): 레이블 y가 실수인 경우 회귀 문제라고 부른다. 데이터들을 쭉 뿌려놓고 이 것을 가장 잘 설명하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀기능을 사용한다.
- 분류(classification): 레이블 y가 이산적인 경우(y가 가질 수 있는 값이 [0,1,2,...]와 같이 유한한 경우 ) 분류 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며 연구가 많이 되어있고 기업들이 가장 관심을 가지는 문제 중 하나이다
- 2_2 비지도 학습
- 사람 없이 컴퓨터가 스스로 레이블 되어 있지 않은 데이터에 대해 학습하는 것 즉 y 없이 x만을 이용해서 학습하는 것이다.
- 군집화(clustering): 데이터 간 거리에 따라 데이터 몇개의 군집으로 나눌 수 있다. x만 가지고 군집을 학습하는 것이 군집화이다.
- 분포 추정(Underlying Probability Density Estimation): 군집화에서 나아가 데이터들이 흩어저 있을 때 어떤 확률 분포에서 나온 샘플들인지 추정하는 문제
- 사람 없이 컴퓨터가 스스로 레이블 되어 있지 않은 데이터에 대해 학습하는 것 즉 y 없이 x만을 이용해서 학습하는 것이다.
- 2_3 반지도 학습
- 레이블이 있는 데이터와 없는 데이터 모두를 활용해서 학습하는 것, 대개의 경우 다수의 레이블 없는 데이터를 약간의 레이블 있는 데이터로 보충해서 학습하는 종류의 문제를 다룬다.
- 2_4 강화 학습
- 현재의 상태에서 어떤 행동을 취하는 것이 최적인지 학습하는 형태
- 행동을 취할 때마다 외부 환경에서 보상이 주어지는데 이러한 보상을 최대화하는 방법으로 학습 진행
3. 지도 학습 알고리즘 저이
- 지도 알고리즘을 기반으로 코드를 해석할 것이기에 지도 알고리즘들에 대하여만 알아보도록하겠다.
- 1. 최근접 이웃(K-NN):
- 데이터 포인트에서 가장 가까운 훈련 데이터 포인트, 최근접 이웃을 찾는 알고리즘, 작은 데이터 세트일 경우에 기본 모델로서 좋고 이해하기 쉽다.
- 2. 선형 모델:
- 선형적인 직선이나 평면, 초평면 등을 이용하여 출력을 찾는 알고리즘, 첫 번째로 시도하기 좋으며 대용량 데이터 세트와 고차원 데이터 세트에 가능하다.
- 3. 나이브 베이즈:
- 데이터의 특성을 독립적이라 가정하여 각 상황의 확률을 계산하여 결과를 출력한다. 분류 문제에만 적용할 수 있다. 대용량 데이터 세트와 고차원 데이터에 사용 가능하다. 선형 모델보다 훨씬 빠르나 정확도는 떨어진다.
- 4. 결정 트리:
- 데이터를 이진 분류하는 것을 반복하여 최종적으로 결과를 출력한다. 매우 빠르고 데이터 스케일의 조정이 필요 없다. 시각화하기 좋고 설명하기 쉬우나 과대적합되는 경향이 있다.
- 5. 랜덤 포레스트:
- 과대적합된 단일 결정 트리를 여러 개 묶어 하나의 모델로 만든 것. 결정 트리 하나보다 거의 항상 좋은 성능을 낸다. 매우 안정적이고 강력하며 데이터 스케일의 조정이 필요가 없다. 다만 시간이 오래 걸리고 텍스트 같은 고차원 희소 데이터에는 잘 맞지 않는다.
- 6. 그래디언트 부스팅 결정 트리:
- 깊이가 깊지 않은 단일 결정 트리를 여러 개 묶어 하나의 모델로 만든 것. 랜덤 포레스트 보다 조금 더 성능이 좋다. 랜덤 포레스트 보다 학습은 느리나 예측은 빠르고 메모리를 적게 사용한다.
- 7.서포트 벡터 머신(svm):
- 클래스 사이의 경계에 위치한 데이터 포인트(서포트 벡터) 간의 거리를 최대화하여 결과를 찾는 알고리즘, 비슷한 의미의 특성으로 이루어진 중간 규모 데이터 세트에는 잘 맞지만, 데이터 스케일의 조정이 필요하고 매개변수에 민감하다.
- 8. 신경망:
- 대용량 데이터 세트에서 매우 복잡한 모델을 만들 수 있다. 다만 매개 변수의 선택과 데이터 스케일에 민감하며, 큰 모델에는 학습이 오래 걸린다.
- 1. 최근접 이웃(K-NN):
다음 시간에는 코드를 통하여 머신러닝을 맛보도록하겠다.
'임베디드 개발자 > 코딩' 카테고리의 다른 글
[OpenCV/PYTHON]파이썬과 오픈cv 및 딥러닝을 응용한 이미지 디텍팅 프로젝트 (0) | 2022.03.03 |
---|---|
[YOLO V5]나의 데이터 학습하기 (0) | 2022.03.03 |
Image processing for defect detection (0) | 2022.02.13 |
MFC 사용하기 (0) | 2022.02.07 |
C언어 기반 영상처리 프로젝트 (1) | 2022.02.05 |