- 기계 학습 이란 무엇입니까 ?
- 기계 학습 코드 는 무엇을합니까?
- 기계가 학습한다고 말할 때, 자체 코드를 수정합니까, 아니면 주어진 입력 세트에 대한 코드 경험을 포함 할 히스토리 (데이터베이스)를 수정합니까?
답변:
기계 학습이란 무엇입니까?
본질적으로 이것은 일부 데이터를 기반으로 예측이나 행동을 만들고 개선하도록 컴퓨터를 가르치는 방법입니다. 이 "데이터"는 무엇입니까? 음, 그것은 전적으로 문제에 달려 있습니다. 걷는 법을 배우는 로봇의 센서에서 읽거나 특정 입력에 대한 프로그램의 올바른 출력 일 수 있습니다.
기계 학습에 대해 생각하는 또 다른 방법은 "패턴 인식"이라는 것입니다. 이는 프로그램이 패턴에 반응하거나 패턴을 인식하도록 가르치는 행위입니다.
기계 학습 코드는 무엇을합니까?
말하는 기계 학습 의 유형 에 따라 다릅니다 . 기계 학습은 무수히 많은 문제를 해결하기위한 수백 가지 알고리즘 이있는 거대한 분야 입니다. 자세한 내용 은 Wikipedia 를 참조하십시오. 특히 알고리즘 유형 아래를 살펴보십시오 .
기계가 학습한다고 말할 때, 자체 코드를 수정합니까, 아니면 주어진 입력 세트에 대한 코드 경험을 포함 할 히스토리 (데이터베이스)를 수정합니까?
다시 한번, 그것은 의존한다 .
실제로 수정되는 코드의 한 가지 예는 유전자 프로그래밍으로 , 본질적으로 작업을 완료하기 위해 프로그램을 진화시키는 것입니다 (물론 프로그램은 자체 수정되지 않지만 다른 컴퓨터 프로그램을 수정합니다).
반면 신경망 은 준비된 자극과 예상되는 반응에 따라 매개 변수를 자동으로 수정합니다. 이를 통해 많은 동작을 생성 할 수 있습니다 (이론적으로 충분한 시간이 주어지면 임의의 정밀도로 함수를 근사화 할 수 있기 때문에 모든 동작을 생성 할 수 있습니다).
"데이터베이스"라는 용어를 사용한다는 것은 기계 학습 알고리즘이 정보, 이벤트 또는 경험을 "기억"함으로써 작동한다는 것을 의미합니다. 이것은 반드시 (또는 자주!) 경우는 아닙니다.
이미 언급 한 신경망은 근사치의 현재 "상태"만 유지하며 학습이 발생하면 업데이트됩니다. 무슨 일이 일어 났고 어떻게 반응하는지 기억하는 대신 신경망은 "세계"에 대한 일종의 "모델"을 구축합니다. 모델은 입력이 이전에 본 적이 없더라도 특정 입력에 반응하는 방법을 알려줍니다.
이 마지막 능력 (이전에 본 적이없는 입력에 반응하는 능력)은 많은 기계 학습 알고리즘의 핵심 원칙 중 하나입니다. 컴퓨터 운전자에게 교통 체증이있는 고속도로를 탐색하도록 가르치려고한다고 상상해보십시오. "데이터베이스"라는 비유를 사용하면 수백만 개의 가능한 상황 에서 수행 할 작업을 컴퓨터에 정확히 가르쳐야합니다 . 효과적인 기계 학습 알고리즘은 다른 상태 간의 유사성을 학습하고 유사하게 반응 할 수 있습니다.
상태 간의 유사점은 무엇이든 될 수 있습니다. 우리가 "평범한"것으로 생각할 수도있는 것조차도 실제로 컴퓨터를 넘어 뜨릴 수 있습니다! 예를 들어, 컴퓨터 운전자가 앞에있는 차가 속도를 늦추면 속도를 늦춰야한다는 것을 배웠다고 가정 해 보겠습니다. 사람의 경우 자동차를 오토바이로 교체한다고해서 변경되는 것은 없습니다. 오토바이도 자동차라는 사실을 알고 있습니다. 기계 학습 알고리즘의 경우 실제로 이것은 놀랍도록 어려울 수 있습니다! 데이터베이스는 자동차가 앞에있는 경우와 오토바이가 앞에있는 경우에 대한 정보를 별도로 저장해야합니다. 반면에 기계 학습 알고리즘은 자동차 예제에서 "학습"하고 자동으로 모터 사이클 예제로 일반화 할 수 있습니다.
기계 학습은 논리적 / 절차 적 접근이 불가능하거나 실행 가능하지 않은 복잡한 작업을 해결할 수있는 컴퓨터 과학, 확률 이론 및 최적화 이론의 분야입니다.
기계 학습에는 다음과 같은 여러 범주가 있습니다.
지도 학습
지도 학습에서는 입력에서 출력으로 매우 복잡한 기능 (매핑)이 있고 입력 / 출력 쌍의 많은 예가 있지만 그 복잡한 기능이 무엇인지 모릅니다. 지도 학습 알고리즘을 사용하면 입력 / 출력 쌍의 큰 데이터 세트가 주어지면 이전에 보지 못했던 일부 새로운 입력 값의 출력 값을 예측할 수 있습니다. 기본 방법은 데이터 세트를 학습 세트와 테스트 세트로 나누는 것입니다. 훈련 세트에 대해 최소화하려는 관련 오류 함수가있는 모델이 있으며 솔루션이 테스트 세트에서 작동하는지 확인합니다. 모델이 테스트 세트에서 합리적으로 잘 수행 될 때까지 다른 기계 학습 알고리즘 및 / 또는 매개 변수를 사용하여이 작업을 반복하면 새 입력에 결과를 사용할 수 있습니다. 이 경우 프로그램은 변경되지 않고 모델 (데이터) 만 변경됩니다. 이론적으로는 다른 프로그램을 출력 할 수 있지만 내가 아는 한 실제로는 수행되지 않습니다. 지도 학습의 예로는 우체국에서 사용하는 숫자 인식 시스템을들 수 있습니다. 여기서는 0에있는 것으로 손으로 레이블이 지정된 큰 숫자 세트를 사용하여 0 ... 9 세트의 레이블에 픽셀을 매핑합니다. ... 9.
강화 학습
강화 학습에서 프로그램은 결정을 내릴 책임이 있으며 주기적으로 행동에 대한 일종의 상 / 유틸리티를받습니다. 그러나지도 학습 사례와 달리 결과는 즉각적이지 않습니다. 알고리즘은 일련의 작업을 규정하고 맨 끝에 만 피드백을받을 수 있습니다. 강화 학습에서 목표는 알고리즘이 최고의 장기 효용 / 보상으로 이어지는 일련의 결정을 생성하도록 좋은 모델을 구축하는 것입니다. 강화 학습의 좋은 예는 범프 센서가 물체에 부딪 혔음을 감지 할 때마다 부정적인 패널티를 주어 로봇에게 탐색하는 방법을 가르치는 것입니다. 올바르게 코딩되면 로봇이 거리 측정기 센서 데이터를 범퍼 센서 데이터 및 바퀴로 보내는 방향과 연관시킬 수 있습니다.
추가 정보 더
배우고 싶다면 Christopher M. Bishop의 패턴 인식 및 기계 학습 을 읽 거나 기계 학습 과정을 수강 하는 것이 좋습니다 . CIS 520 : Machine Learning at Penn 의 강의 노트 를 무료로 읽어 보는 것도 좋습니다.
기계 학습 은 컴퓨터가 센서 데이터 또는 데이터베이스와 같은 경험적 데이터를 기반으로 행동을 진화시킬 수 있도록하는 알고리즘의 설계 및 개발과 관련된 과학 분야입니다. Wikipedia에서 자세히 알아보기
기계 학습 코드 는 일종의 저장소에 "사실"또는 근사치를 기록하고 알고리즘을 사용하여 다른 확률을 계산합니다.
코드 자체 는 기계가 학습 할 때 수정되지 않고 "알고있는"데이터베이스 만 수정됩니다.
기계 학습은 예제 (레이블 없음 / 레이블 있음)에서 유사 학습을 생성하는 다양한 학습 알고리즘을 정의하는 일반적인 용어입니다. 실제 정확도 / 오류는 전적으로 학습 알고리즘에 제공하는 교육 / 테스트 데이터의 품질에 의해 결정됩니다. 이는 수렴 률을 사용하여 측정 할 수 있습니다. 예제를 제공하는 이유는 선택한 학습 알고리즘이 지침을 통해 정보를 제공 할 수 있기를 원하기 때문입니다. 알고리즘은지도 학습 (분류) 기법과 비지도 학습 (클러스터링) 기법으로 나눌 수있다. 학습 알고리즘에 제공하는 품질뿐만 아니라 학습 및 테스트 데이터 세트를 분리하는 방법에 대해 현명한 결정을 내리는 것이 매우 중요합니다. 데이터 세트를 제공 할 때 과도하게 맞추고 예제에서 건전한 편견을 유지하는 것과 같은 사항도 알고 있어야합니다. 그런 다음 알고리즘은 기본적으로 학습을 위해 제공 한 데이터로부터 달성 한 일반화를 기반으로 작성을 학습 한 다음 프로세스 중 테스트를 위해 학습 알고리즘을 가져와 대상 학습을 기반으로 새로운 예제를 생성하려고합니다. 클러스터링에서 알고리즘은 기본적으로 관련 클러스터 집합 (예 : kmeans / knearest neighbour)을 구축하기 위해 데이터 간의 패턴 측정을 통해 생성하려고하는 정보를 제공하는 지침이 거의 없습니다. 그런 다음 알고리즘은 기본적으로 학습을 위해 제공 한 데이터로부터 달성 한 일반화를 기반으로 작성을 학습 한 다음 프로세스 중 테스트를 위해 학습 알고리즘을 가져와 대상 학습을 기반으로 새로운 예제를 생성하려고합니다. 클러스터링에서 알고리즘은 기본적으로 관련 클러스터 집합 (예 : kmeans / knearest neighbour)을 구축하기 위해 데이터 간의 패턴 측정을 통해 생성하려고하는 정보를 제공하는 지침이 거의 없습니다. 그런 다음 알고리즘은 기본적으로 학습을 위해 제공 한 데이터로부터 달성 한 일반화를 기반으로 작성을 학습 한 다음 프로세스 중 테스트를 위해 학습 알고리즘을 가져와 대상 학습을 기반으로 새로운 예제를 생성하려고합니다. 클러스터링에서 알고리즘은 기본적으로 관련 클러스터 집합 (예 : kmeans / knearest neighbour)을 구축하기 위해 데이터 간의 패턴 측정을 통해 생성하려고하는 정보를 제공하는 지침이 거의 없습니다.
좋은 책들 : Introduction to ML (Nilsson / Stanford), Gaussian Process for ML, Introduction to ML (Alpaydin), Information Theory Inference and Learning Algorithms (매우 유용한 책), Machine Learning (Mitchell), Pattern Recognition and Machine Learning (standard Edinburgh 및 다양한 Unis의 ML 코스 북이지만 상대적으로 수학을 많이 읽음), Weka를 사용한 데이터 마이닝 및 Practical Machine Learning (weka를 사용한 이론 및 Java에서 실습)
강화 학습 온라인에서 읽을 수있는 무료 책이 있습니다. http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html
IR, IE, Recommenders 및 텍스트 / 데이터 / 웹 마이닝은 일반적으로 많은 기계 학습 원칙을 사용합니다. 여기에서 Metaheuristic / Global Optimization Techniques를 적용하여 학습 프로세스를 더욱 자동화 할 수도 있습니다. 예를 들어 GA (유전 알고리즘)와 같은 진화 기술을 적용하여 신경망 기반 접근 방식 (일부 학습 알고리즘을 사용할 수 있음)을 최적화합니다. 예를 들어 베이지안 학습과 같은 확률 적 기계 학습 접근 방식의 형태로 순전히 접근 할 수 있습니다. 이러한 알고리즘의 대부분은 통계를 매우 많이 사용합니다. 수렴 및 일반화의 개념은 이러한 많은 학습 알고리즘에 중요합니다.
기계 학습은 유사한 정보에 대한 훈련을 통해 패턴을 학습하여 이전에 보지 못한 정보를 분류 할 수있는 알고리즘을 만드는 컴퓨팅 과학의 연구입니다. 이런 의미에서 모든 종류의 "학습자"가 있습니다. 신경망, 베이지안 네트워크, 의사 결정 트리, k- 클러스터링 알고리즘, 은닉 마르코프 모델 및 지원 벡터 머신이 그 예입니다.
학습자에 따라 각기 다른 방식으로 학습합니다. 일부 학습자는 인간이 이해할 수있는 프레임 워크 (예 : 의사 결정 트리)를 생성하고 일부는 일반적으로 이해할 수없는 (예 : 신경망)입니다.
학습자는 모두 본질적으로 데이터 기반이므로 나중에 다시 사용할 수 있도록 상태를 데이터로 저장합니다. 최소한 일반적으로 자체 수정이 아닙니다.
제가 읽은 머신 러닝의 가장 멋진 정의 중 하나는 Tom Mitchell의이 책에서 나온 것입니다. 기억하기 쉽고 직관적입니다.
컴퓨터 프로그램은 어떤 클래스의 작업 T와 성능 측정 값 P와 관련하여 경험 E로부터 학습한다고합니다.
A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Wikipedia에서 뻔뻔스럽게 찢어짐 : 기계 학습은 컴퓨터가 센서 데이터 또는 데이터베이스와 같은 경험적 데이터를 기반으로 행동을 진화시킬 수 있도록하는 알고리즘의 설계 및 개발과 관련된 과학 분야입니다.
간단히 말해서, 기계 학습 코드는 기계 학습 작업을 수행합니다. 센서 데이터 해석에서 유전 알고리즘에 이르기까지 여러 가지가 될 수 있습니다.
나는 그것이 다르다고 말할 것입니다. 아니요, 코드를 수정하는 것은 정상이 아니지만 가능성의 범위 밖에있는 것은 아닙니다. 나는 또한 기계 학습이 항상 역사를 수정한다고 말하지 않을 것입니다. 때때로 우리는 구축 할 역사가 없습니다. 때때로 우리는 단순히 환경에 반응하기를 원하지만 실제로 과거 경험에서 배우지는 않습니다.
기본적으로 머신 러닝은 세 번째 질문에 1 개의 답이있을 수 없도록하는 많은 방법과 알고리즘을 포함하는 매우 광범위한 분야입니다.
기계 학습은 사람의 실제 세계에서 가져온 용어로 실제로 배울 수없는 기계에 적용됩니다.
다른 답변에 추가하기 위해-기계 학습은 (보통) 코드를 변경하지 않지만 이전 데이터 또는 새로 수집 된 데이터를 기반으로 실행 경로 및 결정을 변경하여 "학습"효과를 줄 수 있습니다.
기계를 "가르치는"방법은 여러 가지가 있습니다. 알고리즘의 여러 매개 변수에 가중치를 부여한 다음 많은 경우에 대해 기계가 문제를 해결하도록합니다. 매번 그녀에게 답에 대한 피드백을 제공하고 기계는 다음에 따라 가중치를 조정합니다. 기계 답변이 답변에 얼마나 근접했는지 또는 답변에 준 점수에 따라, 또는 일부 결과 테스트 알고리즘에 따라.
이것은 학습의 한 방법이며 더 많은 것이 있습니다 ...