반응형

SW/딥러닝 66

26. 딥러닝 : K-FOLD CROSS-VALIDATION (K배 교차 검증) : 개념, 방법, 팁

지난 몇 가지 포스팅에서 왜 데이터를 세 부분으로 훈련, 검증, 테스트로 분할해야 하는지를 알아보았습니다. 이것은 표준 메커니즘이며 일반적으로 머신 러닝이 적절한 경우 적용할 데이터가 충분할 것입니다. 기본 관계의 일부를 잃어 버릴 수 있기 때문에 데이터를 세 개로 나눌 여유가 없거나 데이터가 너무 적어 훈련할 수 없어서 알고리즘이 아무것도 배울 수 없을 수 도 있습니다. 이 문제에 대한 또 다른 답이 있으며 이것을 n 배 교차 검증이라고합니다 . 이것은 일반적인 전략과 비슷하지만 훈련 및 유효성 검사 데이터 세트를 영리하게 결합하는 전략이지만 여전히 테스트 하위 세트가 필요합니다. 훈련 및 유효성 검사 단계를 결합하고 있지만 테스트 단계를 피할 수는 없습니다. 11000 개의 관측치가 포함 된 데이터 ..

SW/딥러닝 2020.03.13

24. 딥러닝 : 훈련, 검증, 테스트 데이터 : 종류, 의미, 활용 방법, 팁

이전 포스팅에서는 유효성 검사 데이터 세트를 알아보고 초기 데이터 세트를 세 부분으로 나누어야 한다고 했습니다. 모델을 다듬고 유효성을 검증한 후 학습 유효성 검증의 마지막 부분에 대해 알아보도록 하겠습니다. 유효성 검증은 새로운 데이터에서 모델을 실행하여 수행됩니다. 이전에는 보지 못했지만 실제 모델을 적용하는 것과 동일하므로 데이터가 훈련되고 검증됩니다. 머신 러닝의 최종 버전이 있습니다. 테스트 데이터 세트를 사용하여 테스트 할 준비가 되었습니다. 이 테스트에서 얻은 예측의 정확도는 실제에 배치 할 경우 모델에 예상되는 정확도입니다. 따라서 테스트 데이터 세트는 마지막 단계입니다. 먼저 요약 해보겠습니다. 데이터 세트를 얻은 다음 세 부분으로 나눕니다. 실무자들이 어떻게 접근할까요? 완벽하게 정의된..

SW/딥러닝 2020.03.12

23. 딥러닝 : 훈련과 검증 : 방법, 예제, 데이터 구성 종류

이전 포스팅을 통해 머신 러닝에 있어 과적합이 실제 잘 나타는 문제라는 것을 확인했습니다. 과적합을 방지하기 위해 어떻게해야 하는지 알아보도록 하겠습니다. 일반적으로 사용 가능한 데이터를 세 가지 하위 집합으로 구성하여 과적합을 파악합니다. 첫 번째 데이터는 이름에서 알 수 있듯이 학습 데이터 세트를 테스트하여 모델을 학습하는 데 도움이됩니다. 지금까지 보았던 모든 것을 수행하는 곳입니다. 모든 데이터가 훈련 데이터라고 생각했지만 의도적으로 변수명을 훈련 데이터라고 레이블을 붙였습니다. 다른 두 가지 하위 집합을 확인하겠습니다. 유효 검사 데이터 세트는 과적합을 감지하고 방지하는 데 도움이 되는 것입니다. 어떻게 작동하는지 알아보겠습니다. 모든 훈련은 훈련 세트에서 수행됩니다. 훈련을 위해 가끔씩 한 번..

SW/딥러닝 2020.03.11

22. 딥러닝 : 오버피팅(과적합) : 분류 문제, 개념, 예제, 차이, 사진

오버피팅 분류에 대해 알아보겠습니다. 지도 학습의 주요 유형은 회귀와 분류입니다. 회귀 및 분류 측면에서 가장 많은 개념을 알아보도록 노력하여야 합니다. 위 그림에는 두가지 범주가 있습니다. 개와 고양이라고 할 수 있습니다. 모든 데이터를 설명하는 좋은 모델은 이전 예제에서 보았듯이 로직에 따라 약간의 오류가 있는 이차 함수처럼 보입니다. 오버피팅된 모델은 어떨까요? 물론 선형 모델의 경우 선형 모델 데이터가 변화되지 않은 경우 정확도가 약 60% 정도 올바르게 분류하고 과적합 모델이 예측치를 완벽하게 분류할 수 있습니다. 데이터 세트의 고양이 및 개 사진을 가지고 다시 새로운 사진으로 테스트를 진행한다면 성능이 매우 저하됩니다. 잘 훈련된 모델은 어떤 것일까요? 잘 알려지지 않은 모델과 과적합 모델 사..

SW/딥러닝 2020.03.10

21. 딥러닝 : 오버피팅(Overfitting) : 개념, 예제, 차이, 의미

인터뷰에서 가장 일반적으로 묻는 질문 중 하나는 과적합에 관한 것입니다. 면접관은 아마도 주제를 제기하고 과적합이 무엇인지, 어떻게 다루는지를 묻습니다. 이번 포스팅에서는 바로 오버피팅, 과적합에 대해 알아보겠습니다. 서로 관련이있는 두 가지 개념이 있습니다. 오버피팅과 언더피팅입니다. 언더피팅은 오버피팅의 반대의 의미를 가집니다. 언더피팅은 모델이 데이터의 기본 논리를 포착하지 못했으므로 어떻게 해야할지 몰라 정확한 결과와는 거리가 멀다는 것을 알 수 있습니다. 먼저 회귀를 살펴보고 분류 문제를 고려할 것입니다. 여기에서 약간의 노이즈가있는 파란색 함수에 여러 데이터 요소를 볼 수 있습니다. 알고리즘은 위와과 같은 모델을 생성합니다. 완벽하지는 않지만 실제 관계에 매우 가깝습니다. 선형 모델의 언더 피..

SW/딥러닝 2020.03.09

20. 딥러닝 : 역전파(Backpropagation) : 구조, 시각화 표현, 개념

여기에 표시된 역전파의 구조를 살펴 봅시다. 네트워크는 매우 간단합니다. 단일 히든 레이어가 있습니다. 각 노드에는 레이블이 지정되어 있습니다. 그래서 입력 레이어, 히든레이어, 출력 레이어를 갖습니다. 그리고 마지막으로 타겟 T1과 T2가 있습니다. 가중치는 신경망의 첫번째 유닛에 대한 w11, w12, w13, w21, w22, W23가 있습니다. u11, u12, u21, u22, u31, u32가 있습니다. 따라서 우리는 두가지 유형의 가중치를 구분할 수 있습니다. 이것이 매우 중요합니다. 알려진 타겟에 따라 , y1, y2와 관련된 오류를 알 수 있습니다. 따라서 e1, e2의 오류를 구할 수 있습니다. 이를 기반으로 레이블이 지정된 가중치를 조정할 수 있습니다. 각 u는 단일 오류에 기여합니다..

SW/딥러닝 2020.03.08

19. 딥러닝 : 역전파(Backpropagation) : 개념, 원리, 구조

역전파는 가장 직관적인 훈련이지만 수학 용어로 이해하기가 가장 어렵습니다. 먼저 탐구한 다음 수학을 살펴볼 것입니다. 수학은 선택 사항이지만 더 나은 이해를 위해, 수학적으로도 살펴보아야 한다고 합니다. 백프로파게이션의 재미있는 부분이기 떄문에, 이 레슨에 대해 잘 알아야 합니다. 먼저 지금까지 알고있는 것을 정리하고, 레이어가 쌓이는 방식의 로직을 이해하고 있어야 합니다. 또한 학습 과정에서 객관적인 기능을 최적화하기 위해 그라이던트 디센트를 통해 매개 변수 업데이트 하는 것으로 훈련과정이 구성되어 있다는 것을 이야기 하였습니다. 최적화 과정은 최소화로 구성되어 있습니다. 업데이트는 손실의 일부 파생 과정으로 구성되어 있음을 이야기 하였습니다즉 , 당사의 업데이트는 손실의 일부 파생과 직접 관련이 있으..

SW/딥러닝 2020.03.07

18. 딥러닝 : 소프트맥스(Softmax) : 개념, 원리, 차이점

대부분의 그리스 문자를 포함하는이 표를 계속 탐색해 봅시다. softmax 함수에 명확한 그래프 y가 없다고 말했으므로 공식을 주의 깊게 살펴보면 이 함수와 다른 함수의 주요 차이점을 볼 수 있습니다. 따라서 softmax 함수는 위치에 있는 요소의 지수와 같습니다. 벡터의 모든 요소의 지수의 합으로 나눕니다. 따라서 다른 활성화 함수는 입력 값을 얻습니다. SoftMax는 가지고 있는 전체 수에 대한 정보를 고려하는 다른 요소들에 관계 없이 변환합니다. 예를 들어 보겠습니다. A는 잘 알려진 모델인 xw + B와 같습니다. 3의 유닛을 가진 숨겨진 레이어를 보겠습니다. 여기서 a는 선형 조합을 통해 변환한 후 hw + B와 같습니다. 0.2에서 1을 빼고 세 개의 유닛을 가진 벡터를 얻습니다. 이제 S..

SW/딥러닝 2020.03.06

17. 딥러닝 : 활성화함수(Activation Function) : 종류, 원리, 개념, 의미

지금 자세히 알아보지는 않았지만, 지난 포스팅에서 비선형성에 대해 이야기했습니다. 이것은 이 학습에서 기계 학습 맥락에서 다룰 주제입니다. 비선형성은 활성화 함수라고도 합니다. 활성화 함수가 입력을 다른 종류의 출력으로 변환하는 방법을 설명합니다. 외부 온도에 대해 생각해보십시오. 깨어나고 태양이 빛나고 있다고 가정합니다. 따라서 외출하고 따뜻하고 편안한 옷을 입습니다. 오후에는 온도가 내려 가기 시작하면서 손에 재킷을 들고 다닙니다. 처음에는 뇌가 차가워지고 있다고 말하더라도 어느 시점에서 큰 차이나는 행동을 하지 않습니다. 온도에서 활성화 함수는 이 입력을 재킷을 입는 행동으로 변형 시킵니다. 이것은 변환 후의 출력이기도합니다. 비선형성 배후의 논리는 온도의 변화가 선형 모델을 따르고 있었는데, 활성..

SW/딥러닝 2020.03.05

16. 딥러닝 : 왜 딥러닝에는 비선형성이 필요한가? : 개념, 원리

더 복잡한 관계를 표현할 수 있도록 비선형성이 필요하다고 말했습니다. 하지만, 비선형성을 포함시키는 중요한 이유는 선형 레이어를 쌓을 수있는 능력은 선형만 있을 때 레이어를 쌓을 수 없다는 점입니다. 하나의 숨겨진 레이어가 있고 비선형성이 없다고 상상해보십시오. 숨겨진 레이어에는 8 개의 입력 노드가 9 개의 헤드와 노드가 있고 4 개의 출력 노드가 있으므로 8 x 9 개의 행렬이 있습니다. 입력 레이어와 숨겨진 레이어 사이의 관계를 매트릭스 W라고합니다. 선형 모델 H에 따라 숨겨진 유닛은 x 곱하기 w와 같습니다. 잠시 바이어스를 무시하고 생각해보겠습니다 .그래서 숨겨진 유닛은 행렬 H로 1 x 9의 형태로 요약됩니다. 출력 배치 선형 모델 Y에 따라 숨겨진 레이어에서 다시 한 번 h x W2와 같습..

SW/딥러닝 2020.03.04

15. 딥러닝 : 딥 뉴럴 네트워크 : 기본 구조 이해, 원리, 개념

이미 이 그림을 보았습니다. 딥 러닝의 기본 그림이라고 할 수 있습니다. 이 포스팅에서 간단하게 알아보도록 하겠습니다. 첫 번째 레이어는 입력 레이어입니다. 각 원은 별도의 입력을 나타냅니다. 이 그래프에는 8 개의 입력이 있습니다. 이 입력은 텐서플로우 프레임 워크에서 모델을 학습하기 위해 공급하는 데이터입니다. 예측을 할 떄, 8 개의 입력이 있다고 상상하십시오. 예를 들어 평균, 온도, 최고 온도, 최저 온도, 습도, 강수량, 대기압, 구름, 거리의 가시성 등이 있습니다. 이러한 입력을 선형으로 결합한 다음 비선형성을 추가합니다. 선형화하는 것은 쉽습니다. 좋은 오래된 선형 모델을 사용합니다. 입력은 X입니다. 이를 선형적으로 결합하려면이 예제에서 가중치가 필요합니다. 가중치는 8 x 9입니다. 1..

SW/딥러닝 2020.03.03

14. 딥러닝 : 딥 뉴럴 네트워크 : 개념, 원리 : 파라미터, 하이퍼 파라미터 차이점

레이어에 대해 광범위하게 이야기 할 것이라고 약속했습니다. 딥 뉴럴 네트워크의 가장 일반적인 그림 표현은 위와 같습니다. 첫 번째 레이어는 입력 레이어라고합니다. 이것은 기본적으로 가지고있는 데이터입니다. 신경망의 기본 이론적 근거는 이제 이 출력을 다른 레이어의 입력으로 사용할 수 있고, 마지막 학습을 중지하기로 결정할 때, 그 레이어를 출력 레이어를 사용할 수 있다는 것입니다. 첫 번째 레이어는 입력 레이어이고 마지막 레이어는 출력 레이어입니다. 사이의 모든 레이어를 숨겨진 레이어라고합니다. 입력을 알고 출력을 얻지만 이러한 작업이 숨겨진 스태킹 계층마다 하나씩 딥 네트워크를 생성하거나 이를 딥넷이라고 하므로 어떻게되는지 알 수 없습니다. 숨겨진 계층의 빌딩 블록을 숨겨진 유닛 또는 노드라고 합니다...

SW/딥러닝 2020.03.02

13. 딥러닝 : 레이어 : 선형성과 비선형성 : 의미, 개념

다시 한 번 더 깊이 파고 들어야 할 시점입니다. 이전 섹션 중 하나에서 심층 신경망을 살펴볼 계획입니다. 간단한 선형 회귀 모델을 훈련하는 방법을 보았습니다. 두 개의 입력과 단일 출력이 있습니다. 이 떄, 배운 선형 모델을 사용했습니다. 이 함수는 L2 뉴런 손실에 따라 몇 백 번의 데이터가 가장 적합합니다. 이제 대부분의 실제 생활에 적용하기 위해서는 선형 레이어를 조합해 더 나은 예측 인공지능이 필요합니다. 이것은 대부분 선형 모델보다 복잡한 모델로 작업하는 것을 의미합니다. 복잡함은 일반적으로 선형 혼합과 비선형 연산을 의미하며, 이러한 복잡성은 임의의 함수를 표현할 수 있게 합니다. 선형으로 결합된 입력에 출력을 할당한 다음 출력을 생성하는 비선형 변환을 수행하게 되는 것입니다. 아마도 비선형..

SW/딥러닝 2020.03.01

12. 딥러닝 : 텐서플로우 2.0 예제 : 결과 해석과 가중치와 바이어스 추출

# 문제에 대한 관련 라이브러리를 항상 가져와야합니다. import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 먼저, 생성하고자하는 훈련 세트의 크기를 포함하는 변수를 선언해야합니다. observations = 1000 # 입력으로 두 개의 변수를 사용할 것입니다. # 이전 예제에서 x1과 x2로 생각할 수 있습니다. # 우리는 x와 z를 구분하기가 쉽기 때문에 선택했습니다. # 균일 한 분포로 그림을 무작위로 생성합니다. # 이 방법에는 3 가지 인수 (낮음, 높음, 크기)가 있습니다. # xs와 zs의 크기는 관측치 x 1입니다.이 경우 : 1000 x 1입니다. xs = np.random.uniform(low=-10,..

SW/딥러닝 2020.02.29

28. 딥러닝 : 초기화(Initialization) : 개념, 방법, 필요성, 의문점

머신 러닝의 중요한 부분인 초기화에 대한 첫 번째 포스팅입니다. 세계에서 가장 빠른 컴퓨터조차도 세부 사항을 말하면서 도움을 줄 수는 없습니다. 초기화는 가중치의 초기 값을 설정하는 프로세스입니다. 부적절한 초기화로 인해 최적화 프로그램 모델이 발생하지 않을 수 있으므로 이 개념을 알아두는 것이 중요합니다. 가장 간단한 그라디언트 디센트를 소개 할 때 5x^2 + 3X - 4 함수를 사용합니다. 그라디언트 디센트를 수행합니다. 다시 말해 초기 가중치를 우연히 발견한 다음 경우에 간단한 값 4로 가중치를 초기화했습니다. 그런 다음 마이너스 0 범위에서 무작위로 가중치를 초기화했습니다. 스스로에게 질문하지 않았다면 지금이 시간입니다. 초기 가중치가 무엇인지 아는 것이 중요합니다. 임의의 초기 가중치가 필요하..

SW/딥러닝 2020.02.28

10. 딥러닝 : 텐서플로우 2.0 : 기본 예제 : 모델 선언 방법

import numpy as np import matplotlib.pyplot as plt import tensorflow as tf observations = 1000 xs = np.random.uniform(low=-10, high=10, size=(observations,1)) zs = np.random.uniform(-10, 10, (observations,1)) generated_inputs = np.column_stack((xs,zs)) noise = np.random.uniform(-1, 1, (observations,1)) generated_targets = 2*xs - 3*zs + 5 + noise np.savez('TF_intro', inputs=generated_inputs, targ..

SW/딥러닝 2020.02.27

09. 딥러닝 : Numpy : NPC 파일 저장 방법 : 텐서플로우2.0과 궁합

import numpy as np import matplotlib.pyplot as plt import tensorflow as tf numpy와 matplotlib와 텐서플로우 라이브러리를 임포트합니다. 텐서플로우로 라이브러리는 tf로 선언해 가져옵니다. 한줄 한 줄 마다 코드 차이가 있습니다. observations = 1000 xs = np.random.uniform(low=-10, high=10, size=(observations,1)) zs = np.random.uniform(-10, 10, (observations,1)) generated_inputs = np.column_stack((xs,zs)) noise = np.random.uniform(-1, 1, (observations,1)) ge..

SW/딥러닝 2020.02.26

08. 딥러닝 : 텐서플로우 2.0 : 소개, 기본 예시, 장점

텐서플로우 소개입니다. 텐서플로우는은 구글이 개발한 심층 학습 라이브러리입니다. 코딩이 거의 없는 꽤 복잡한 모델을 만들어 볼 수 있게 해주기 때문에 인사이트를 얻을 수 있습니다. 실제 예에서는 텐서플로우는 20줄의 코드가 필요했습니다. import numpy as np import matplotlib.pyplot as plt import tensorflow as tf observations = 1000 xs = np.random.uniform(low=-10, high=10, size=(observations,1)) zs = np.random.uniform(-10, 10, (observations,1)) generated_inputs = np.column_stack((xs,zs)) noise = np.r..

SW/딥러닝 2020.02.25

07. 딥러닝 : 텐서플로우 2.0 : 사용해야 하는 이유, 비결, 달라진 점

신경망을 만들기 위해 텐서플로우로 작업 할 것임을 알고 있습니다. 그러나 텐서플로우는 더 이상 예전과 같지 않습니다. 그래서 개발에 대한 짧은 역사를 가지고 텐서플로우가 가장 널리 사용되는 이유 중 하나입니다. 많은 실용성으로 인해 많은 실무자들이 선호하는 선택이지만 불행히도 배우고 사용하기가 매우 어려운 단점이 하나 있습니다. 따라서 많은 사람들이 텐서플로우의 두 라인을 본 후 낙담합니다. 메소드는 이상할뿐만 아니라 코딩의 전체 논리는 대부분의 라이브러리와 달리 파이토치와 같은 상위 레벨 패키지의 개발 및 대중화로 이어졌으며, 2017년에 특히 흥미로웠습니다.실제로 텐서플로우과 오픈 소스처럼 관심이 있기는하지만 프로그래밍 세계에서 그런 일이 일어난다는 것은 놀라운 일이 아닙니다. 케라스는 다른 라이브러..

SW/딥러닝 2020.02.24
반응형