반응형

SW/딥러닝 52

52. 딥러닝 : 실제 데이터를 균형잡히게 만들어야 하는 이유

사전 처리를 시작하기 전에 잠시 데이터 세트 밸런싱의 중요성에 대해 이야기 하겠습니다. 두 클래스 고양이와 강아지의 사진 분류 문제에 대해 생각해 보겠습니다. 좋은 모델에서 기대하는 정확도는 어느 정도일까요? 사진의 70%를 정확하게 분류한다면 그리 나쁘지 않을 것입니다. 80%의 정확도는 좋은 반면 90%는 초보자에게 매우 좋습니다. 구글과 페이스북의 분류가 대부분의 문제에서 99.9퍼센트 정확도를 달성하는 것에 대해 말하는 것이 아닙니다. 90% 정확도는 인상적인 성과입니다. 이제 알고리즘에 무엇을 먹이든 동물 사진을 찍고 고양이만 출력하는 모델을 상상해 보세요. 항상 정답으로 고양이를 출력합니다. 좋은 모델은 그렇지 않아요. 이 기계에게 물어볼 수 있을 까요? 원하는 기계 학습 알고리즘의 결과는 분..

SW/딥러닝 2020.09.19

51. 딥러닝 : 비즈니스 솔루션 : 필요한 절차, 사례

서비스를 개발하기 위해 무엇이 필요한 지 알아보았습니다. 실생활 데이터로 작업하고 있기 때문에 어떻게 할 것인지 살펴 보았습니다. 데이터 과학 팀의 머신 러닝을 위해서는 사전 처리가 중요합니다. 분석을 위한 데이터 세트를 준비하는 것이 작업입니다. 이것이 여기에서 머신 러닝 알고리즘을 처음부터 생성하기 위한 몇 가지 일반적인 기술을 보여 드리고자 합니다. 세 가지 중요한 단계가 필요합니다. 첫 번째 단계는 데이터 세트의 균형을 맞추는 것입니다. 두 번째 단계는 데이터 세트를 훈련 검증과 테스트로 세 부분으로 나누는 것입니다. 이미 수행해야하는 이유를 이미 알고 있습니다. 이제 처음부터 수행하는 방법을 살펴 보겠습니다. 새로 생성된 세트를 텐서 친화적인 형식으로 저장합니다. 마지막으로 기계 학습 알고리즘을..

SW/딥러닝 2020.09.17

50. 딥러닝 : 사용자 예측 사례 : 이용자가 물품을 재구매하는 지 예측 방법

안녕하세요. 기본적인 비즈니스 사례에 대해 알아보겠습니다. 이미 알고있는 모든 것을 단순히 적용하는 것입니다. 문제가 있습니다. 오디오 북 앱을 논리적으로 데이터베이스의 각 고객이 최소 한 번 이상 구매 한 도서의 오디오 버전과 관련된 데이터가 있습니다. 데이터를 기반으로 머신 러닝 알고리즘을 만들어 고객은 오디오 북 회사에서 다시 구매할 것을 예측합니다. 주된 아이디어는 회사가 돌아올 가능성이 없는 개인을 대상으로 광고 예산을 지출해서는 안된다는 것입니다. 다시 전환 할 가능성이있는 고객에게 노력을 집중할 수 있다면 매출 및 수익성 개선 수치를 얻을 수 있습니다. 따라서 모델은 몇 가지 측정 항목을 취하고 인간 행동을 예측하려고 노력할 것입니다. 모델이 고객이 돌아 오는 데 가장 중요한 측정 항목이 무..

SW/딥러닝 2020.09.16

49. 딥러닝 : MNIST : 훈련 모델 백테스팅 하는 방법, 예제, 구현

모듈 임포트, 데이터 전처리, 데이터 import numpy as np import tensorflow as tf import tensorflow_datasets as tfds mnist_dataset, mnist_info = tfds.load(name='mnist', with_info=True, as_supervised=True) mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test'] num_validation_samples = 0.1 * mnist_info.splits['train'].num_examples num_validation_samples = tf.cast(num_validation_samples, tf.int64) n..

SW/딥러닝 2020.09.15

48. 딥러닝 : MNIST : 데이터 나누어서 훈련 진행, 예제, 구현

패키지 임포트 import numpy as np import tensorflow as tf import tensorflow_datasets as tfds 이번 포스팅에서도 동일하게 패키지 임포트를 진행합니다. 패키지를 설치하는 방법이나 활용하는 방법은 이전 포스팅을 참조해주세요. 데이터 전처리 mnist_dataset, mnist_info = tfds.load(name='mnist', with_info=True, as_supervised=True) mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test'] num_validation_samples = 0.1 * mnist_info.splits['train'].num_examples nu..

SW/딥러닝 2020.09.14

47. 딥러닝 : MNIST : 모델링 및 컴파일 하는 과정, 예제, 구현

패키지 임포트 import numpy as np import tensorflow as tf import tensorflow_datasets as tfds 계속 포스팅해왔던 것 처럼, 필요한 패키지를 임포트를 진행합니다. 필요한 라이브러리를 설치하고, 진행합니다. 데이터 전처리 mnist_dataset, mnist_info = tfds.load(name='mnist', with_info=True, as_supervised=True) mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test'] num_validation_samples = 0.1 * mnist_info.splits['train'].num_examples num_validati..

SW/딥러닝 2020.09.13

46. 딥러닝 : MNIST : 훈련을 위해 데이터를 모델링 하는 방법, 예제

패키지 임포트 import numpy as np import tensorflow as tf import tensorflow_datasets as tfds 기존 처럼 동일하게 패키지 임포트를 진행해줍니다. 해당 내용은 다른 포스팅에서 언급했으므로, 이번 포스팅에서는 따로 언급하지 않겠습니다. 데이터 전처리 mnist_dataset, mnist_info = tfds.load(name='mnist', with_info=True, as_supervised=True) mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test'] num_validation_samples = 0.1 * mnist_info.splits['train'].num_examp..

SW/딥러닝 2020.09.12

45. 딥러닝 : MNIST : 훈련을 위해 데이터를 분류하는 방법, 구현

패키지 임포트 import numpy as np import tensorflow as tf import tensorflow_datasets as tfds 필요한 패키지를 임포트 합니다. 임포트 내용은 이전에 했던 포스팅을 참조해주시면 감사하겠습니다. 데이터 전처리 mnist_dataset, mnist_info = tfds.load(name='mnist', with_info=True, as_supervised=True) mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test'] num_validation_samples = 0.1 * mnist_info.splits['train'].num_examples num_validation_samp..

SW/딥러닝 2020.09.11

44. 딥러닝 : MNIST 분류 예제, 구현 : 데이터 전처리

패키지 임포트 import numpy as np import tensorflow as tf import tensorflow_datasets as tfds 필요한 패키지를 위와 같이 임포트합니다. 자세한 내용은 이전 포스팅을 참조해주세요. 데이터 전처리 mnist_dataset, mnist_info = tfds.load(name='mnist', with_info=True, as_supervised=True) mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test'] num_validation_samples = 0.1 * mnist_info.splits['train'].num_examples num_validation_samples = t..

SW/딥러닝 2020.09.05

43. 딥러닝 : MNIST 분류 예제 : 패키지 임포트, 데이터 준비

MNIST 분류를 위한 심층 신경망 이 섹션에서 얻은 모든 지식을 적용하여 심층 신경망을 작성합니다. 선택한 문제는 딥 러닝의 "Hello World"라고 합니다. 왜냐하면 대부분의 학생들이 처음 보는 딥 러닝 알고리즘이기 때문입니다. 데이터 세트는 MNIST라고 하며 손으로 쓴 숫자 인식을 나타냅니다. Yann LeCun의 웹 사이트 (페이스 북 AI 리서치 이사)에서 더 많은 정보를 찾을 수 있습니다. 그는 이야기 해 왔던 것과 오늘날 널리 사용되는 CNN (covolutional neural network)과 같은 더 복잡한 접근법의 선구자 중 한 명입니다. 데이터 세트는 70,000 개 이미지 (28x28 픽셀)의 손글씨 숫자 (이미지 당 1 자리)를 제공합니다. 목표는 쓰여진 숫자를 감지하는 알..

SW/딥러닝 2020.09.04

42. 딥러닝 : MNIST : 무엇이고 왜 경험해보아야 하는가?

그동아 개념에 대한 포스팅을 하였습니다. 코딩으로 돌아 오기까지는 오랜 시간이 걸렸지만 지금까지의 모든 포스팅은 기본적인 딥러닝을 하기 위해 이해나는데 필요한 영역이라 할 수 있습니다. 앞으로도 꾸준히 복습을 해야할 것 같습니다. 모델링을 시작했을 때 텐서플로우를 도입하여 템플릿을 제공하고 그 안에 넣는 것이 쉬웠을 것입니다. 이제 이론을 알았으므로 전체 과정과 진행되는 모든 것을 진정으로 이해할 수 있습니다. 이번에 선택한 문제는 기계 학습의 핼로우 월드라고 할 수 있습니다. 종종 이것은 학생들이 직면하는 첫 번째 문제 중 하나입니다. Mnist라고 불리는 사면 데이터 세트는 손으로 쓴 숫자의 약 70000 개의 이미지로 구성됩니다. 10 자리 숫자이기 때문입니다. 0부터 9까지 10 개의 클래스가 있..

SW/딥러닝 2020.09.03

41. 딥러닝 : 원핫, 바이너리 인코딩 : 개념, 차이, 장단점, 적용 차이

이진 인코딩을 소개하는 포스팅을 시작하겠습니다. 바이너리 인코딩부터 시작하겠습니다. 빵은 1 번, 요구르트는 2 번, 머핀은 3 번, 2 진수로 지정하면 이 숫자를 바꾼 값을 의미합니다. 이진수 1로 이진수는 01. 그래서 빵은 01이고 2는 10이됩니다 그래서 요구르트는 10이 될 것입니다. 3의 이진수는 11이 될 것입니다. 그래서 머핀은 11이 됩니다. 프로세스의 다음 단계는 다시 나누는 것입니다. 마치 첫 번째 변수에 대해 두 개의 새로운 변수를 만드는 것처럼 서로 다른 열로 표시해야 합니다. 빵은 0, 요구르트는 1, 머핀은 2인 것을 기억해야 합니다. 빵이 3개 있으면 11이 되어 머핀으로 인코딩 되지 않도록 유의해야 합니다. 빵시 3개가 되어 머핀이 될 수 없으므로, 이러한 상관관계를 유의해..

SW/딥러닝 2020.09.02

40. 딥러닝 : Categorical Data (범주형 데이터) : 개념, 필요성, 종류

대부분은 거래량, 가격 등을 거래하는 수치 변수의 예를 알아보았습니다. 짧은 범주형 데이터도 다루어야 합니다. 종종 우리의 고양이 개 예제와 같은 그룹 또는 범주를 참조합니다. 알고리즘은 값이 아닌 숫자만 취하므로 범주형 데이터로 작업 할 때 문제는 범주를 숫자로 변환하는 방법이 필요합니다. 모델 또는 출력에 입력할 수 있어야 합니다. 결국에는 분명히 다른 숫자의 의미가 연관되어야합니다. 각 범주에 의미에 대해 알아보겠습니다. 우리 가게에 빵 요구르트와 머핀 세 가지 제품이 있다고 가정해보겠습니다. 이제 이러한 범주를 숫자로 어떻게 변환 할 수 있을까요? 가능한 해결책은 다음과 같이 열거하는 것입니다. 빵, 요구루트, 머핀은 각 1개, 2개, 3개가 있습니다. 이것은 주문이 있음을 의미합니다. 머핀이 빵..

SW/딥러닝 2020.08.30

39. 딥러닝 : Standardization(정규화) : 개념, 종류, 컨셉

숫자 데이터로 작업 할 때 가장 일반적인 문제는 크기의 차이에 관한 것입니다. 첫 번째 강의에서 언급했듯이 이 문제에 대한 쉬운 해결 방법은 표준화입니다. 이 용어에 다른 용어로 기능 확장 및 정규화가 있습니다. 머신 러닝 내에서도 몇 가지 추가 개념을 참조 할 수 있습니다. 이것이 바로 표준화 및 정규화 또는 기능 확장이라는 용어를 고수하는 이유입니다. 작업중인 데이터를 표준 규모로 변환하는 프로세스입니다. 이 문제에 접근하는 매우 일반적인 방법은 다음과 같습니다. 평균을 빼고 표준 편차로 나누면 데이터 셋에 관계없이 항상 평균이 0 인 분포를 얻을 수 있습니다. 예를 사용하면 알고리즘을 쉽게 증명할 수 있는 1의 표준 편차인 데이터가 있습니다. 입력 변수 유로 달러 환율과 일일 거래량을 3 일 동안의..

SW/딥러닝 2020.08.29

38. 딥러닝 : Basic Preprocessing (기본 전처리) : 개념, 사용, 예시

가장 간단한 전처리 중 하나로 시작합니다. 종종 주식에 관심이 없지만 주가를 전처리할 때 일반적으로 발생하는 상대 가치에 대해 알아보겠습니다. Google을 열고 Apple의 주가를 입력하면 얻을 수 있는 것은 Apple의 주가입니다. 그러나 빨간색 또는 녹색 숫자는 Apple 주가의 상대적인 변화를 의미합니다. 이것은 매우 흔한 전처리의 예입니다. 이러한 상대적 메트릭은 주가와 같은 시계열 데이터로 존재하고 있을 때 특히 유용하다고 생각하지 않습니다. 그러나 곧 금융의 세계에서 이러한 상대적인 변화를 로그로 더 변환 할 수 있습니다. 많은 통계 및 수학적 방법이 로그를 활용하여 머신 러닝에서 더 빠른 계산을 촉진하기 때문에 로그 변환은 일반적이지 않지만 학습 속도를 높일 수 있습니다. 이것은 예시로 제..

SW/딥러닝 2020.08.28

37. 딥러닝 : Preprocessing (전처리) : 개념, 목적

전처리 머신 러닝 알고리즘 생성을 시작할 때 수행해야하는 첫 번째 활동에 관한 것이며, 전처리는 모델을 통해 실행하기 전에 데이터 세트에 적용하는 모든 조작을 의미합니다. 이미 훈련에 적합하게 데이터를 사전 처리했습니다. 텐서플로우 인트로에서 이미 일부 사전 처리를 보았고 수행 한 모든 훈련을 PC 파일로 저장했습니다. Excel 파일 csv 또는 NPC 파일에 저장하는 것은 전처리의 한 유형이지만 이전과 같이 순서를 변경하는 것보다 주로 데이터 변환에 중점을 두고 알아보겠습니다. 전처리의 목적 몇 가지 중요한 사항이 있습니다. 하나는 이전 10 분의 1에서 본 라이브러리와의 호환성 또는 Excel 스프레드 시트 및 데이터 과학이 아닌 텐서플로우에 관한 것입니다. 종종 어떤 형식 으로든 데이터가 제공되며..

SW/딥러닝 2020.08.27

36. 딥러닝 : Adaptive Moment Estimation : 개념, 분석, 개요

지금까지 서로 다른 두 가지 최적화 알고리즘 업데이트 규칙에 새로운 아이디어를 가져 왔음을 알았습니다. 이러한 개념을 결합하고 더 나은 결과를 얻을 수 있다면 더 좋을 것입니다. 가장 유용하다고 생각하는 최적화 알고리즘의 상태에 도달 할 수 있는 rate와 모멘텀은 Adaptive 모멘트 추정이라고하며, 실제로 적용되는 최첨단 최적화 프로그램이며 2014 년 12 월 22 일에 제안된 새로운 기능입니다. 2014년 또는 2015 년에 대학에서 머신 러닝을 공부 한 사람이 있다면 이 방법을 보지 못했을 것입니다. 이는 또한 공부를 마친 후에도 ML 공부가 끝이 없다는 이야기를 뒷받침합니다. 아담 (Adam)은 이번 포스팅의 주제이며 Adaptive Moment Estimation의 줄임말입니다. ADA g..

SW/딥러닝 2020.08.23

35. 딥러닝 : Adaptive Learning Rate Schedules : 개념, 방법, 개요

딥러닝의 다른 것들과 마찬가지로 학습 속도 비율에 대해 더 깊이 파고들어야 합니다. 간단한 규칙을 사용하여 학습 속도를 조정하는 대신, 이 주제에 대한 고급 연구 결과를 사용할 수 있습니다. Ada grad를 사용하면 마술이 평소대로 일어날 것이라고 말할 수 있습니다. 머신 러닝으로 훈련 할 때 최첨단 머신 러닝으로 전체 비디오를 살펴 보는 것이 좋습니다. 모델 훈련을 위한 최상의 방법을 선택할 수 있어야 합니다. 먼저 우리는 Ada grad는 Adaptive Gradient 알고리즘의 약자이며 2011년에 새로 제안되었으므로 각 업데이트 및 모든 가중치에 대해 학습 속도를 동적으로 변경하므로, 원래 규칙은 다른 방식이었습니다. w의 변화는 m과 같습니다. 학습 속도와 W에 대한 손실의 부분 미분 값을 ..

SW/딥러닝 2020.08.22

34. 딥러닝 : 학습률 (learning rate) : 좋은 학습 속도인지 분별하는 방법

학습률에 대해 이야기하지 않고 포스팅을 하는 동안, 위 그림이 매우 중요하지만, 크게 다루지는 않았습니다. 지금까지는 낮은 학습 속도 사례만 살펴보았습니다. 목표에 도달하는 작은 학습 속도를 사용했습니다. 그러나 학습 속도가 높으면 손실을 빠르게 최소화할 수 있지만, 어느정도까지만 도달하고, 진동을 시작하고 손실 값이 멈추게 됩니다. 학습률이 너무 높을수록 손실을 최소화할 수 없으며 비용은 그래프에서 볼 수 있듯이 상향으로 폭발 할 것입니다. 지수 적으로 스케쥴에 따라 정의된 학습률과 같이 잘 선택된 학습률은 낮은 학습률보다 훨씬 빨리 손실을 최소화합니다. 또한 높은 학습 속도보다 더 정확하게 수행 할 수 있습니다. 개발자는 항상 좋은 학습 속도를 목표로 하고 있습니다. 문제는 특정 데이터 모델에 대한 ..

SW/딥러닝 2020.03.28

33. 딥러닝 : 학습률 (learning rate) : 방법, 원리, 설정 팁, 개념

하이퍼 매개 변수의 개념을 소개합니다. 가중치, 바이어스 매개 변수는 알고리즘의 가중치 및 깊이와 숨겨진 유닛의 값과 레이어 값과 같은 것입니다. 알고리즘과 데이터에 가장 적합한 경로를 찾기 위해 하이퍼 매개 변수를 가져야 한다고 언급 했습니다. 최소값으로 크게 진동하지 않고 최소값에 도달하거나 무한대로 분기하지 않고 손실 함수가 완만하게 내려갈 수 있을 정도로 작아야합니다. 또한 최적화가 적당한 시간 내에 이루어 지도록 충분히 커야 했습니다. 하나의 매개 변수에 대해 그라디언트 하강에 제공하는 것으로 학습 속도가 있습니다. 충분히 작거나 충분히 큰 학습률은 너무 모호합니다. 적절한 학습 속도 선택을 다루는 현명한 방법은 소위 학습 속도 스케쥴을 채택하는 것입니다. 학습 속도 스케쥴은 가장 좋은 방법 중..

SW/딥러닝 2020.03.27
반응형