본문 바로가기

ML/딥러닝

딥러닝 기초

이미지 인식과 같은 분야를 인간보다 컴퓨터가 더 잘 할 수 있을까?

컴퓨터의 고사양 성능과 빅데이터가 결합. >> 다른 머신러닝 기법보다 좋음.

머신러닝안에는 statistical learning > neural network > deep learning

명시적 프로그래밍 없이 컴퓨터 스스로 학습할 수 있는 능력을 갖추게 하는 분야.

지도 학습. 리니어 리그레션 로지스틱 리그레션 뉴럴 네트워크 .. 등등..

비지도 학습 k-mean, pca, apriori

세미 지도 학습 지도학습으로 레이블이 존재하는 데이터를 학습시키고 이 모형으로 레이블 없는 data에 레이블을 추정한다.

추정과 관츠고딘 레이블로 다시 지도학습 모형 만들고 레이블 추정.

이 과정을 더 이상 결과가 안변할때 까지.

구글 포토, 페이스북, 앨범에 있는 사진 판별 기능이 이런 준 지도학습.

강화학습. 현재 policy에 의해 의사결정. 실행. 실행 결과에따라 벌점, 보상, 이런거 있어서 벌점 최소ㅗ하나 보상 최대화 쪽으로 의사결정 policy를 수정하고 반복.

 

딥러닝은 히든 레이어가 여러 개인 신경망 모형이다. 

신경망 모형에 히든 레이어를 추가하는 시도는 그 동안 통계학이 주름 잡던 data modling 분야에 엄청난 도전.

신경망 모형은 많은 문제점이 있었고, ai winter 2?가 도래함.

 

계산시간이 비약적으로 증가했지만 오버피팅 문제 백프로파게이션 알고리즘이 딥러닝에서 동작하지 않느 이슈로 빛을 못보다가 최근에서야 다시 각광받음.

 

딥러닝 부활 이유 

1.빅데이터 데이터가 많아져 히든레이어 증가해도 오버피팅 줄어듬

2. gpu 연산 병렬연산을 통해 계산을 더 빠르게.

3.많은 연구를 통해 과거 신경망 모형의 단점 보완 가능

 

딥러닝 활용분야는 너무 다양

 

 

텐서플로우. 구글이만듬. 기계학습 라이브러리 . 빅데이터가 경쟁력이라 그거는 공개를 안하고 있음.

텐서(행렬) 그에 따른 흐름들을 그래프로 표현하고 실행.수치는 다차원 행렬.

신경망 모형은 텐서플로우로 표현이 용이한 형태.

텐스플로우가 텐서들의 플로우를 정의하고 이를 한번에 실행하여 학습결과 얻음.

cpu/gpu 사용 가능. gpu컴퓨팅은 cpu를 함께 이용하여 애플리케이션의 처리속도를 높이는 기술임.

cpu는 정수연산에 최적화되어 있어, 시스템 전반의 제어와 함께, 사무용 및 일상용 그리고 2디 그래픽 애플리케이션 구동에 적합. 반면 gpuㄴ는 특수한 용도에 최적화된 프로세서로 특히 부동소수점 연산능력이 뒤어남. 그래서 게임과 같은 3디 그래픽을 더 빨리 처리함.

 

 

빅데이터

컴퓨터 입장에서 데이터가 커져도 기술적으로 달라질 것이 없음.

하지만, 데이터 사이즈가 기술적, 물리적으로 단일 컴퓨터, 단일 데이터베이스로 처리하는데 무리가 되는 크기의 데이터가 있다면,,,,,, 혹은 비용 이슈가 있다면 ,,,,,,,

구글, 네이버 검색정보, 유튜브의 보유 동영상, 페이스 북 보유 자료, 센서 로그 등 대용량 컴퓨터로 처리하는 것이 비용 면에서 효율적이 아님. 

이에대한 해결책으로 분산 처리 컴퓨팅 방법론 탄생.

빅데이터 시대 초반에는 분산처리를 통해 막대한 량의 정보를 처리하여 부가가치를 창출하고자 함.

현재는 이러한 내용보다는 빅데이터와 머신러닝의 조합에서 부가가치를 창출하는 쪽으로 발전함.

 

빅데이터의 3v 규모, 속도, 다양성,

4v 정확성 // 5v 가치.

 

정형 data log data 이미지 data 사운드 데이터.

 

과거엔 이미지를 정형 데이터로 전환하여 분석함.

현재는 이미지 픽셀을 데이터로 보고 그대로 분석에 이용하는데 더 좋은 예측력을 보임.

분석에 정량 데이터 뿐 아니라 비정형 신호 데이터까지 활용.

 

정적인 데이터 /이벤트 로그 데이터

정적인 데이터는 성별 연령 지역 제조사 생산일 같이 개체의 속성에 해당하는 데이터로 안바뀌는.

이벤트로그데이터를 개체의 상태에 해당. 시간에 따라 바뀌는 현 위치 , 클릭 페이지, 조회 키워, 이런거.

 

일반적으로 행 관측단위 / 열은 변수로 지정되는 정형데이터구조에서는 이벤트 로그 데이터 처리 어려움.

현재 이벤트로그 이용한 데이터 처리 수요 증가 

 

비표본오차때문에 참이랑 통계적 추정이랑 다를수도있음

 

빅데이터의 경우는 풍부한 데이터 셋을 가지고 있어서 재현성을 분포를 통해 증명하는게 아니라 실증적 재현.

 

기존 통계적 방법으론 빅데이터여도 정확도 증가 기대 못해. 왜냐면 표본오차는 0에 가깝지만 비표본오차....

 

과거 자신의 연구가설 증명.

현재 prediction과 forecasting, 의사결정 등 다양한 비즈니스 요구 등장.

전통적통계학 분석을 위해 필요 최소 데이터 수집. 모집단의 구조파악을 통한 추론 (보수적 관점) 리니어 중심. 설명변수의 수를 최소화하여 분석의 자유도를 확보하고자 함..

빅데이터 접근은 기존에 축적된 자룔르 통ㅇ해 분석하고 모집단의 구조보다 예측에 초점 적극적인 관점이다. 비선형적인 모델도 마다하지 안흔다. 데이터가 많으므로 변수의 수에 구애받지않아.

리니어 모형 사용하는 이유는 오버피팅 피하려고, 그래서 빅데이터는 복잡한모형써도 오버피팅 덜해 

빅데이터의 경우 모형을 만드는데 모든데이터사용안하고 모형 검증을 위한 테스트 셋을 빼놔 

이것이 실증적 재현성.

 

빅데이터는 분석 및 해석시 주의가 필요

 

 

머신러닝.

인풋에 대해 어떤 아웃풋을 내야할지 모른다. 프로그래머가 코드를 안만들면. 이를 스스로 해결하는 방법론이 뭐가 있을까

스스로 학습시켜보자.

 

회귀분석. 직선 혹은 곡선의 방정식을 구하는 방법 가장 관측값을 잘 지나가게

직선일때 오차가존재하는데 오차가 작을수록 좋은 모형.

 

회귀모형에서 미지수는 SSE를 최소화하는 미지수 알파 베타를 구하는 계산을 수행하여 얻어짐

SSE는 cost함수라고 함.

회귀 모형에서 이제 아웃풋인 y값이 0과 1 같은 값을 원할때는 직선으로 하면 안돼 치역이 -무한 무한이니깐

그러면 이제 로지스틱 함수를 사용해 이런0~1값 갖는 함수를 sigmoid함수라 함.

이걸로 회귀분석하는걸 logistic regression이라함.

 

여기서 코스트함수는 sse가아니라 cross entrophy함수인데 이거는 y=1일땐 sum -log Y    y=0일땐 sum - log (1-Y) 이다 그래야 1일때 1넣으면 0나와서 최소 오차. 이런느낌.

 

이걸 sse랑 비교해보면 그래프 그려서. sse는 매끄럽지 않아.

왜매끄러워야하냐 convex해야 오차가 작은 해를 구할 수 있어 매끄러워야. 

 

MLE 베르누이 어쩌고로 CROSS entropy 유도할수있고

 

이제 cross entropy 해결하는 문제 방법을 알아보자 그게 최대경사하강법임.