레이블이 야나두 딥러닝인 게시물을 표시합니다. 모든 게시물 표시
레이블이 야나두 딥러닝인 게시물을 표시합니다. 모든 게시물 표시

엔트로피 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 대한 이해 딥러닝 기초

  딥러닝 손실 함수 사용할때,  약방의 감초처럼 나오는 엔트로피 함수,   이것을 모르면, 일단 딥러닝을 모른 다 할 정도로 엔트로피 함수는 중요 하다.    딥러닝에서는 손실값을 구할때 사용하는 것으로,  사실상 손실 값을 계산 하지 않으면,  실제로 모델을 실행 시키고 나서 모델의 결과 값을 알수 가 없다.    모형에 대한 평가는 엔트로피 함수 기반으로 한다. 


이것의 기원은 볼츠만의 엔트로피로 부터 나온다. 

 

공식은 S = K log W 이다. 


  불츠만이라는 분은 살아서는 인정을 받지 못하였는데,  죽어서 인정을 받으셨던 분이다.  이것이 있어서  오늘날 통계학이나 인공지능이 많이 발전 했다.  

1. 불츠만의 앤트로피

딥러닝 하면서 필요한 것 및 수학 필수 이론

   딥러닝을 그냥 시작 하면 매우 어려울 수도 있다.  왜냐 하면,  선형대수학이나,  통계학에 대한 기초 이론이 있어야 어느 정도 가능 하다.   이번에 하는 시간은 매우 적지만,  기초에 대한 부분을 우선 적으로 다룰 예정이다.    


1. 딥러닝에 필요한 것들

야나두 딥러닝 R 과 Python의 비교

통계학과 출신인 필자는 R위주로 업무를 해오고, R에 대한 것만 다루었다. R과 Python의 차이점은 아래 그림과 같다.



R은 통계 패키지 이다. 개발 툴이 아니다. R을 CRAN 사이트에서 수없이 많은 Package를 받아 사용 할 수 있다. 전 세계의 개발자나, 통계 학자들이, 아주 어려운 것을 쉽게 풀어 패키지를 만든다. 따라서 R은 누가 만들어 놓은 것 가지고, 데이터 파라메터를 조정 하면서 사용 할 수 있다.

필자가 사용한 예는 고장 분석의 와이블 분포인데, 신뢰성 공학에서 가장 어려운 부분이다. 하지만 UCL의 Yves Deville 교수가 "Renext" 라는 패키지를 만들어 쉽게 사용 할 수 있게 만들었다.


Python은 조금 다르다. numpy가 있는데 그건 기본 패키지 이고, Pandas는 데이터 프레임을 다루는것이고, 사이킷럿인 있는데, 그것은 머신러닝을 다루는 툴이다. 딥러닝을 다루는 텐서 플로우나 케라스가 있으나, 전부다 개발하는 사람의 역량에 따라 코드가 바뀌어 진다.


R이나 Python 전부 전처리를 하는데R을 전처리하는 패키지를 돌리지만 Python은 직접 코드를 짜서 하는 경우가 많다.


R은 통계학의 기본 이론만 알면 되는데, 파이썬은 개발자의 개인기와 수학에 의해 많이 의존이 된다.하지만, 파이썬이 R보다 좋은 이유는 R은 데이터 분석에서 끝나지만, Python은 머신러닝/딥러닝과 같이 모델링을 한 후에 그 결과를 하드웨어 컨트롤 하는데 사용 할 수 있다. 산업 현장에서는 파이썬이 R 보다 더욱 중요 해 졌다.



R은 하드웨서 컨트롤을 할 수 없으니, 전사 ERP 시스템과 연동 하는 과제나, 아니면 IOT 플랫폼 내에서 고장에 대한 예측이나, 빅데이터를 다룰 수 있다. 일반적으로 R은 C++ 이나, JAVA를 입혀서 Pakcage 를 만든다. 그것 때문에 속도가 늦는 측면이 있는데, 사용하기는 편리 하다.


Python은 용접 심추적 장치와 같이 사진을 보고 하드웨어 컨트롤 하는데, 주로 사용한다. 4차 산업의 메카가 된것은 Python이 아닐까라는 생각이 든다. 4차 산업은 2차 산업의 확대 버전 이기 때문이다.

야나두 딥러닝 [ 많이 사용되어 지는 통계 및 인공지능]

   모형에 많이 사용 되어 지는 통계 및 인공지능은 아래와 같다.     선형 예측 보다는 Classifier 들이 더 많이 존재 한다.   실무에서는 Classifier가 거의 없다.   거의 대부분은 변화 하는 수가 아니라,   정의 되어 있는 수 (즉 Information 정보) 데이터 이다.   

  종속 변수에 영향을 주는 독립 변수가 대부분 1개 ~2개 정도 되기 때문에 Classifier를 사용하기가 어렵다.   변수들의 구성을 보았을때, 정보성 변수등 등급이 있는 경우가 있다.  회사내에서는 직급, 근속년수, 근무지역 별로 나누어 지는데,   어떤 것을 분석 하느냐에 따라서,  전부 달라 진다. 



위의  PPT 자료는 선형 회귀 빼고는 모두 Classifier를 사용한 모형이다.  하지만, Random forest 랜덤 포레스트는   Classifier 말고 회귀 분석을 하는 경우가 있다.  

 

    Linear Regression :  종속변수  y와 한 개 이상의 독립변수 X와의 선형상관관계 모델링 

    Logistic Regression  :  독립변수의 선형 결합을 이용하여 사건의 발생 가능성 예측

                                 종속변수가 범주형 데이터를 대상으로 하여 분류문제로 봄

   


    Decision Tree :  입력 변수를 바탕으로 목표변수의 값을 예측 하는 분류 모델

   K-Nearest Neighbor :  입력이 특징 공간 내 k개의 가장 가까운 훈련 데이터로 구성되어 있다. 


Support Vector Machine :  기계 학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도 학습 모델이며, 주로 분류와 회귀 분석을 위해 사용한다.

Random forest :  분류 , 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로 훈련 과정에서 다수의 결정트리로 부터 분류 또는 평균 예측치를 출력 함으로 동작됨


  

  분석하는 데이터 성격에 따라 다르기는 하지만, 일반적으로 데이터를 돌리면 Random forest가 제일 잘 나온다.  하지만,  컴퓨터 연산도 많이 이루어 진다.    

 위 부분을 사용하기 위해서는 다수의 독립변수들이 존재 하여야 한다.  하지만,  실제 데이터들은 독립 변수들이 존재 하지 않는 경우가 대부분이다.   독립 변수가 존재 하는 대표적인 것은 부동산과,  사람의 신용정보 인데,  산업 현장에서 이런 데이터가 나오기는 매우 어렵다. 

하지만, 분류가 기계학습에서 머신러닝으로 발전 하게 된것은 바로,  이미지를 인식할 수 있는 딥러닝이 나오기 시작 하면서 였다.   즉 사진을 분류 할 수 있는데,  정확도가 높아 졌다는 것은 획기적인 것이다.   즉 산업 현장에서도 사용 할 수 있는 것이 많다는 것이다.   대표적인 산업군에서는 자동차 기술 등이다.    이번 강좌가 생겨난 것도 이 때문이다.    

  

야나두 딥러닝 시작하면서

   야나두 딥러닝의 시작은 DX 전문가 교육 때 부터 였다.   카이스트 교수 교육이 있었을때,  예상 하였던 것처럼,  통계학, 선형대수학,  인공지능 기초 이론이 있어가 그나마 듣는 것이 가능 할 거 같았다.  

  하지만,  대학원생과 같이 특정과제를 잡고 학생들을 가르쳐 주는 연구교수님들께서,  본인의 연구 분야 만 소개 하고,   가르쳐 주셨기 때문에 듣는 사람 입장에서는 쉽지 않은 교육이 었다.  카이스트 교수 본 교육 들어가기 전에,  빠르게 정리 하려 하였지만,  이것이 수학이 들어 간 공부라 쉽지는 않았다.

    이번에 할 때는 쉬운 사례를 가지고 가능 한 이해 하기 쉽게 설명 할 예정이다.    딥러닝 분야는 이번 DX 교육 때 부터 처음과 마찮가지이니,  아주 디테일 하게 정리 하였다. 

 이번에 이것을 정리 하면서 Latex를 사용할 예정 이다.   딥러닝 공식 중에서 대표적인 공식을 아래 적어 보려 한다.  크로스 엔트로피에 대한 공식 이다. 

   $$ H_P(q)  =   \sum_{c=1} ^C  q(y_c)log(p(y_c)) $$

  • C = 범주의 개수
  • q = 예측 모형의 실제 분포
  • p = 예측 분포

   위의 공식을 유도 하는 방식이나,  수학적인 기본 원리를 가지고, 설명할 예정이다. 


css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...