본문 바로가기

전체 글36

7장 7.1 전체구조 7.2 합성곱 계층 7.3 풀링 계층 7.4 합성곱/풀링 계층 구현하기 7.5 CNN 구현하기 7.6 CNN 시각화하기 7.7 대표적인 CNN 7.8 정리 7.1 전체구조 이전의 신경망과 같이 계층을 조합하여 만들 수 있다. CNN에서는 새로운 합성곱 계층과 풀링 계층이 추가된다. 완전연결: 인접하는 계층의 모든 뉴런과 결합된 신경망 (완전 연결된 계층을 Affine 계층) 7.2 합성곱 계층 1) 완전연결 계층의 문제점 완전연결 계층에 입력할 때는 3차원 데이터를 평평한 1차원 데이터로 평탄화 = 데이터의 형상 무시 완전연결 계층은 형상을 무시하고 모든 이력 데이터를 동등한 뉴런(같은 차원의 뉴런)으로 취급해 형상에 담긴 정보를 살릴 수 없다. 하지만 합성곱 계층은 형상을 유지 (이미지.. 2023. 6. 29.
[데이터 분석] 선형회귀, 변수 상관관계 시각화 선형 회귀란 무엇인가 머신 러닝의 주요 목표는 실제 데이터를 기반으로 모델을 구축하여 다른 입력 값에 대한 출력을 예측하는 것이다. 이를 위해 가장 직관적이고 간단한 모델을 선형모델이다. 선형 회귀 분석은 주어진 데이터를 가장 잘 설명하는 선을 찾는 분석 방법이다. 예를 들어 키와 몸무게 데이터를 수집하여 그것들을 가장 잘 설명하는 선을 찾으면 해당 선을 기반으로 특정 개인의 키를 사용해 몸무게를 예측할 수 있다. 머신 러닝에서 선형 회귀는 종속 변수(예측하려는 변수_몸무게)와 한 개 이상의 독립 변수(영향을 주는 변수_키, 성별 등) 간의 선형적인 관계를 모델링 하는 것을 목표로 한다. 이를 위해 주어진 데이터에 적합한 회귀선을 찾기 위해 최소제곱법*을 사용해 회귀 계수를 추정한다. * 선형 회귀에서 .. 2023. 6. 23.
6장 6.1 매개변수 갱신 6.2 가중치의 초기값 6.3 배치정규화 6.4 바른학습을 위해 6.5 정리 6.1 매개변수 갱신 신경망의 학습 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것 = 매개변수의 최적값을 찾는 문제 = 최적화 매개변수 공간은 매우 넓고 복잡해 최적화는 어려운 문제이다. 우리는 지금까지 최적의 매개변수 값을 찾는 단서로 매개변수의 기울기(미분)를 이용했다. 매개변수의 기울기를 구해 기울어진 방향으로 매개변수 값을 갱신하는 일을 진행해 최적의 값으로 다가간다. 이것이 확률적 경사 하강법(SGD)이다. SGD외의 다른 최적화 기법을 소개한다. 1) 확률적 경사 하강법 (SGD) W : 갱신할 가중치 매개변수 aL/aW은 W에 대한 손실함수의 기울기 η : 학습률 class SG.. 2023. 6. 22.
5장 5장 5.1 계산 그래프 5.2 국소적 계산 5.3 왜 계산 그래프로 푸는가? 5.4 연쇄법칙 5.5 역전파 5.6 단순한 계층 구현하기 5.7 활성화 함수 계층 구현하기 5.8 Affine/Softmax 계층 구현하기 5.9 오차역전파법 구현하기 5.10 정리 오차역전파법 : 인공 신경망에서 가중치와 편향을 업데이트하는데 사용되는 학습 알고리즘 오차역전파법을 제대로 이해하는 두 가지 방법 - 수식을 통한 것 - 계산 그래프를 통한 것 5.1 계산 그래프 계산 그래프는 계산 과정을 그래프로 나타낸 것. 그래프는 복수의 노드와 에지로 표현된다. 예시 문제 2 : 현빈 군은 슈퍼에서 사과를 2개, 귤을 3개 샀다. 사과는 1개 100원, 귤은 1개에 150원, 소비세 10%일때 지불금액은? 계산 그래프를 이.. 2023. 6. 2.
4장 4.1 훈련데이터와 시험데이터 범용 능력을 제대로 평가하기 위해 훈련 데이터와 시험 데이터의 분리가 필요 데이터셋 하나로만 매개변수의 학습 및 평가를 수행하면 올바른 평가가 될 수 없음 * 오버피팅 문제 : 한 데이터셋에만 지나치게 최적화된 상태 - 훈련 데이터만 사용하여 학습해 최적의 매개변수 찾음 - 그 후 시험 데이터를 사용하여 훈련한 모델의 실력을 평가함 4.2 손실함수 - 신경망은 하나의 지표를 기준으로 최적의 매개변수 값을 탐색함 : 신경망 학습에서 사용하는 지표를 손실 함수라고 한다. 1) 오차제곱합 - 가장 많이 쓰이는 손실함수 y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0] t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0].. 2023. 6. 1.
손글씨 숫자 인식 학습된 매개변수를 사용하여 학습 과정은 생략하고, 추론과정만 구현 (추론과정=신경망의 순전파) MNIST 데이터셋 MNIST 데이터셋을 이용하여 모델을 학습하고, 학습한 모델로 시험 이미지들을 얼마나 정확하게 분류하는지 평가한다. 이를 준비하는 코드는 다음과 같다. # coding: utf-8 import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 import numpy as np from mnist import load_mnist # MNIST데이터를 (훈련이미지,훈련레이블), (시험이미지, 시험레이블)로 반환 from PIL import Image def img_show(img): #MNIST이미지 화면으로 불러옴 pil_img =.. 2023. 5. 13.
2장 2장 2.1 퍼셉트론이란? 2.2 단순 논리 회로 2.3 퍼셉트론 구현하기 2.4 퍼셉트론의 한계 2.5 다층 퍼셉트론이란? 2.1 퍼셉트론이란? - 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 것 - 인간의 뇌 신경세포를 본 따 만든 알고리즘 원 : 뉴런 or 노드 x : 입력 신호 y : 출력 신호 w : 가중치 θ : 임계값 (한계) 뉴런에서 보내온 신호의 총합이 정해진 임계값(한계)을 넘어설 때만 1 출력 = 뉴런이 활성화한다. 퍼셉트론은 복수의 입력 신호 각각에 고유한 가중치(w) 부여 가중치(w) 는 각 신호가 결과에 주는 영향력을 조절하는 요소로 가중치가 클수록 해당 신호가 그만큼 더 중요함을 의미한다. 기계학습 문제는 이 매개변수의 값을 정하는 작업을 컴퓨터가 하도록 함. 사람은 퍼.. 2023. 4. 7.
3장 3장 3.1 신경망 3.2 활성화 함수 3.3 다차원 배열의 계산 3.4 3층 신경망 구현 3.5 출력층 설계하기 3.6 배치 처리 3.1 신경망 신경망이란? - 퍼셉트론을 여러층 쌓아 만든 하나의 거대 비선형 분류기 동작(0을 넘으면 1을 출력하고, 그렇지 않으면 0을 출력)을 하나의 함수로 나타낸다. 이 함수를 h(x)라 하면 다음과 같은 수식으로 표현할 수 있다. h(x) = 입력신호의 총합 y = h(x)를 통해 변환된 값 (출력값) 3.2 활성화 함수 - 인공 신경망에서 h(x)와 같이 입력 신호의 총합을 출력값으로 변환하는 함수. - 은닉층과 출력층에서 사용된다. - 활성화 함수는 인공 신경망의 비선형성을 제공하고, 신경망의 복잡한 패턴을 학습할 수 있도록 한다. - 만약 활성화 함수를 사용하.. 2023. 4. 7.
백준 2609 [파이썬] (유클리드호제) #1 유클리드호제법을 이용한 풀이 a,b = map(int,input().split()) # 최대공약수 # a & b의 최대 공약수는 b & a를 b로 나눈 나머지의 최대 공약수 def gcd(a, b): while b > 0: a, b = b, a % b return a # 최소공배수 # a와 b의 곱을 a와 b의 최대 공약수로 나눈 값 def lcm(a, b): return a * b // gcd(a, b) print(gcd(a, b)) print(lcm(a, b)) #2 내장함수를 이용한 풀이 import math a, b = map(int, input().split()) print(math.gcd(a, b)) print(math.lcm(a, b)) 유클리드호제 ? 유클리드 호제법은 최대공약수를 구.. 2023. 3. 20.
백준 1929 [파이썬] (에라토스테네스의 체) def isPrime(num): if num==1: return False else: for i in range(2, int(num**0.5)+1): if num%i == 0: return False return True M, N = map(int, input().split()) for i in range(M, N+1): if isPrime(i): print(i) 소수는 자신과 1로만 나누어 떨어져야 한다. 해당 수의 제곱근까지만 나누어 보면 알 수 있는데 (num**0.5) 약수가 대칭으로 이루어져있기 때문이다. 24의 약수는 1 2 3 4 6 8 12 24 로 대칭 16의 약수는 1 2 4 8 16 8의 약수는 1 2 4 8 로 대칭 제곱근보다 같거나 작은 수 까지만 나누어 보아도 소수인지 확인이 가.. 2023. 3. 20.