Data scientist/Machine Learning

[ML,DL] 머신러닝(Machine lerning)과 딥러닝(Deep lerning)의 정의와 차이점

반응형

#머신러닝과 딥러닝에 대하여 

 

AI / 머신러닝 / 딥러닝은 위와 같은 포함 관계를 가진다. 

 

 

 

#머신러닝 

대량의 데이터와 알고리즘을 통해 컴퓨터 그 자체를 학습시켜 작업 수행방법을 익히는 것 을 의미한다.

일반적인 프로그래밍은 데이터와 프로그래밍을 통해 output을 내지만 머신러닝에서는 data와 결괏값을 주고 그것을 통해 컴퓨터가 자체적으로 프로그래밍을 학습하게끔 한다.

머신러닝에서 기계가 학습하기 위해 주어진 데이터에서 특징을 추출하는 과정에 여전히 사람이 개입이 필요하다.

즉 사람이 생각한 특징을 훈련하여 결과를 나타나게 뜸하다.

 

 

 

머신러닝(Machine Learning) 알고리즘 분류

- 지도 학습(Supervised learning) / 비지도 학습(Unsupervised Learning) / 강화 학습(Reinforcement Learning)

 

 

1. 지도 학습(supervised Learning) - 데이터에 대한 정답(레이블)을 알려주며 학습시키는 것 이것에는 크게 두 가지로 분류  분류(classification)와 회귀(regression) 

    1-1)분류(classification) - 이진 분류 (예 또는 아니오) = discrete value(이산 값) / 다중 분류 어떤 데이터에 대해 여러 값 중 하나로 분류할 수 있는 것 ex) 이 동물은 모야? 고양이 또는 사자

    1-2)회귀(regression) - 어떤 데이터들의 특징을 토대로 값을 예측하는 것 = continuous vaslue(연속 값) (결괏값은 실수가 가능) ex) 어디 동네에 평수면 집값이 얼마야? 어디 면 얼마 어디 면 얼마

단점:정답 집합을 확보하는 것

 

2. 비지도 학습(unsupervisied Learning) - 데이터에 대한 정답(레이블)을 따로 알려주지 않고 비슷한 데이터들을 군집화 하는 것.

    ex) 고양이 병아리 기린 호랑이가 있을 경우 비슷한 단위로 군집화한다. 이걸 클러스터링(Clustering) 알고리즘이 있다 다리가 4개인 고양이 기린 호랑이로 / 목이 긴 기린은 다른 분류로 그런 식으로 분류

        이걸 feature(특성)에 따라 군집화 한다.

 

 

3. 강화 학습(Reinforcement Learning) - 주어진 환경에서 현재 상태(state)에 대해 어떤 행동을 취하고 이로부터 어떤 보상(reward)을 얻으면서 학습을 진행한다. 동적인 상태에서 데이터를 수집하는 과정까지 포함되어 있는 알고리즘 단 행동 목록 등은 사전에 정의가 되어야 한다. 

최근에는 계산하는 대신 신경망을 통해 근삿값을 구함으로써 복잡한 문제를 해결할 수 있게 되었다.

 

지도 학습과 비지도 학습은 정적인 환경에서 이뤄지지만 강화 학습은 동적인 상황에서 이뤄진다. 

 

 

 

#딥러닝

 

입력과 출력 사이에 있는 인공 뉴런들(Neural network)을 여러 개 층층이 쌓고 연결한 인공신경망 기법을 주로 다루는 연구이다. 인공신경망을 여러 개 쌓으면 Deep learning, RNN을 여러 계층으로 쌓으면 Deep RNN,... 같은 식이다.

딥러닝의 가장 큰 특징은 모델의 부피를 키우고, 데이터를 쏟아부으면 무조건적으로 그만큼의 성능 향상을 보인다는 점이다.

데이터 자체에서 중요한 특징을 기계 스스로 학습하여 유의미한 결과를 도출해낸다.

 

신경망(Neural network)

신경망이란 생물학에서 영감을 얻은 것으로 관측한 데이터로부터 컴퓨터가 학습을 하게 하는 프로그램 패러다임

 

 

 

 

각 뉴런은 다른 뉴런으로부터 입력을 받는다 -> 뉴런에 있는 각 입력들의 효과는 시냅틱 가중치에 의해 조절된다(플러스 or 마이너스) -> 상황에 맞게 조정되며 전체 망은 유용한 계산을 수행하도록 학습한다.

외부에서 입력되는 신호를 뇌에서 받아 각 가중치에 의해 계산을 한 후 최종적으로 특정한 행동을 하게 된다.

 각 뉴런은 전체 입력값들을 모두 다 결합하는 총합 함수가 있다. 각각의 연결과 각각의 단위 자체에 임계 함수 혹은 제한 함수가 있어서 다른 뉴런으로 전파하기 전에 보낼 신호는 반드시 한계점을 초과해야 한다.

 

 

 

 

 

머신러닝과 딥러닝의 차이점

  1. 데이터 의존도 - 데이터가 많을수록 딥러닝의 성능은 올라간다. 머신러닝의 경우에는 일정량의 데이터에 수작업이 들어가기 때문에 적을 때는 이게 더 성능이 좋다.

2. 하드웨어 의존도 - 아까 말했듯이 딥러닝은 컴퓨터를 학습시키는 데 있어서 GPU가 사용된다. 딥러닝 알고리즘은 본질적으로 많은 양의 행렬 곱셈을 수행한다.  

 

3.Feture engineering - 데이터 복잡성을 줄이고 학습 알고리즘에서 패턴을 보다 잘 보이게 하는 과정

머신러닝의 경우 대부분의 적용된 변수는 전문가가 식별한 다음 정보 영역 및 데이터 유형별로 손으로 코딩해야 한다. 

딥러닝은 high-level features를 학습한다. 고차원적인 변수! 따라서 딥러닝은 모든 과제에서 새로운 변수 추출이라는 작업을 줄여준다.

 

4. 문제 해결 접근법 - #1. 머신러닝 - 문제를 여러 개의 파트로 쪼갠 후, 각각에 대한 답을 구하고 그 결과를 합치는 방법을 추천

                                       #2. 딥러닝 - end-to-end 방식

 

5. 실행시간 - #1. 알고리즘 훈련일 경우 : 머신러닝(수초 ~ 수시간) > 딥러닝(오래 걸림)

                            #2. test 일 경우 :  머신러닝 < 딥러닝

                             근데 이게 무조건 그런 건 아니고 우세를 보이는 편이다.

 

6. 해석력 - #딥러닝 - 딥러닝은 수학적으로 딥러닝의 어느 노드가 활성화되었는지를 알 수 있긴 하지만 , 우리는 거기에                  어떤 뉴런이 만 들어졌는지, 그리고 이들 뉴런 레이어가 전제적으로 무엇을 하고 있는지 알지 못합니다.                                                 그래서 결과를 해석하지 못한다.

                    #머신러닝 - 의사 결정 틔리와 같은 기계 학습 알고리즘은 왜 선택한 알고리즘을 선택했는지에 대한 명확한 규칙을 제공하                                               므로 배후의 추론을 해석하기가 특히 쉽다. 

따라서 결정 트리 및 선형 / 로지스틱 회귀와 같은 알고리즘은 주로 업계에서 해석 가능성을 위해 사용된다.

 

 

 

 

 

 

 

 

반응형