분류 전체보기

· 인공지능
합성곱 신경망 28 x 28 크기의 흑백 이미지와 3 x 3 크기의 커널 10개로 합성곱을 수행한다. 그런 다음 2 x 2 크기의 최대 풀링을 수행하여 14 x 14 x 10로 특성맵의 크기를 줄인다. 이 특성 맵을 일렬로 펼쳐서 100개의 뉴런을 가진 완전 연결층과 연결 시킬 것이다. 정방향 계산 이번에 구현할 합성곱 신경망 클래스는 ConvolutionNetwork이다. 합성곱과 렐루 함수 그리고 풀링이 적용되는 부분을 주의깊게 보면 된다. MultiClassNetwork 클래스의 forpass() 메서드에 있던 z1, a1, z2를 계산하는 식은 그대로 두고 그 앞에 합성곱과 풀링층을 추가하여 코드를 작성해 보자. class ConvolutionNetwork(MultiClassNetwork): de..
· Python/numpy
github.com/rougier/numpy-100 rougier/numpy-100 100 numpy exercises (with solutions). Contribute to rougier/numpy-100 development by creating an account on GitHub. github.com 51. ((x, y) , (r, g, b))를 원소로 갖는 배열을 만든다. 52. (100, 2) 좌표를 만들고 사이의 거리를 나타낸 것이다. scipy패키지를 이용하면 된다. 53. float을 int로 바꾸는 방법이다. view로 데이터만 공유하게 복사를 한다. 54. genfromtxt()로 txt을 읽을 수 있다. 55. 배열의 index와 요소를 함께 출력하는 방법이다. np.npdidex..
· 인공지능
렐루 함수 은닉층에 시그모이드 함수를 활성화 함수로 사용했다. 출력층은 이진 분류일 경우에는 시그모이드 함수를 사용하고, 다중 분류일 경우에는 소프트맥스 함수를 사용했다. 렐루 함수는 주로 합성곱층에 적용되는 활성화 함수로, 합성곱 신경망의 성능을 더 높여준다. 렐루 함수는 0보다 큰 값은 그대로 통과시키고 0보다 작은 값은 0으로 만든다. 렐루 함수 구현 넘파이의 maximum() 함수를 사용하면 간단하게 구현할 수 있다. import numpy as np def relu(x): return np.maximum(x, 0) x = np.array([-1, 2, -3, 4, -5]) relu(x) 텐서플로가 제공하는 렐루 함수는 relu()이다. 출력은 Tensor 객채이므로 numpy로 변환해야 한다. ..
· 인공지능
풀링 합성곱 신경망에서는 특별히 합성곱이 일어나는 층을 합성곱층, 풀링이 일어나는 층을 풀링층이라 한다. 합성곱층과 풀링층에서 만들어진 결과를 특성 맵(feature map)이라고 부른다. RGB 컬러 채널을 가진 입력 이미지가 합성곱층과 폴링층을 거치면서 변환되는 과정을 보자. 입력이 합성곱층을 통과할 때 합성곱과 활성화 함수가 적용되어 특성 맵이 만들어진다. 그런 다음 특성 맵이 풀링층을 통과하여 또 다른 특성 맵이 만들어진다. 이렇게 합성곱층 뒤에 풀링층이 뒤따르는 형태는 합성곱 신경망의 전형적인 모습이다. 특성 맵을 스캔 하며 최댓값을 고르는 모습을 나타낸 것이다. 이를 최대 풀링(max poolling)이라고 한다. 폴링 영역의 크기는 보통 2 x 2를 지정한다. 일반적으로 스트라이드는 풀링의 ..
· 인공지능
합성곱 합성곱(convolution) 연산과 교차 상관(cross-correlation) 연산에 대해 알아야 한다. 합성곱은 두 함수에 적용하여 새로운 함수를 만드는 수학 연산자이다. 합성곱은 글보다는 그림으로 이해하는 것이 쉽다. 배열 뒤집기 두 배열 x와 w가 있다고 가정하고 두 배열 중 원소수가 적은 배열 w의 원소 준서를 뒤집어 보면 위와 같다. 뒤집은 배열은 reverse의 약자인 r을 사용하여 w^r이라고 표현한다. 첫 번째 합성곱 왼쪽 끝자리에 맞춰 놓고 원소끼리 곱한 후 더한다. 즉, 점 곱 연산을 수행한다. 두 번째 합성곱 w^r을 오른쪽으로 한 칸 이동하여 각 배열 원소끼리 곱한 후 더한다. 나머지 합성곱 같은 방식으로 오른쪽 끝에 도착할 때까지 수행한다. 이것이 합성 곱이다. 수식으로..
Model&Schema Schema는 데이터의 구조나 타입, 길이 등의 정보를 담고 있는 것이다. Model은 Schema를 감싸고 있는 것이라 생각하면 된다. models라는 폴더를 생성해 model을 관리해보자. 그 후, models폴더 안에 User.js파일을 만들어 보자. const mongoose = require('mongoose') const userSchema = mongoose.Schema({ name: { type: String, maxlength: 50 }, email:{ type: String, trim: true, unique: 1 }, password:{ type: String, minlength: 5 }, lastname:{ type: String, maxlength: 50 }..
· 인공지능
케라스 케라스는 딥러닝 패키지를 편리하게 사용하기 위해 만들어진 래퍼(wrapper) 패키지이다. 대표적인 딥러닝 패키지인 텐서플로, 씨아노 등을 사용해 신경망을 구현하려면 꽤 많은 양의 코드를 입력해야 한다. 코드를 살펴보자. #훈련할 가중치 변수 선언 w = tf.Variable(tf.zeros(shape=(1))) b = tf.Variable(tf.zeros(shape=(1))) #경사 하강법 옵티마이저 설정 optimizer = tf.optimizers.SGD(lr = 0.05) #에포크만큼 훈련 num_epochs = 10 for step in range(num_epochs): #미분 연산 과정 기록 with tf.GradientTape() as tape: z_net = w * x_train +..
· 인공지능
다중 분류 신경망 구현 MinibatchNetwork 클래스를 확장하여 다중 분류를 수행하는 MultiClassNetwork 클래스를 구현해 보자. 소프트맥스 함수 추가 다중 분류에서는 마지막 출력층에 소프트맥스 함수를 사용해야 하므로 은닉층과 출력층에 각기 다른 활성화 함수를 적용한다. 이를 위해 activation() 메서드의 이름을 sigmoid()로 바꾸고 softmax() 메서드를 추가한다. def sigmoid(self, z): a = 1 / (1 + np.exp(-z)) #시그모이드 계산 return a def softmax(self, z): #소프트맥스 함수 exp_z = np.exp(z) return exp_z / np.sum(exp_z, axis=1).reshape(-1,1) 소프트맥스..
· 인공지능
다중 분류 다중 분류 신경망을 만들기 위해서는 소프트맥스(softmax) 함수와 크로스 엔트로피(cross-entropy) 손실 함수라는 새로운 개념을 알아야 한다. 이진 분류와 다중 분류는 크게 다르지 않다. 출력층의 개수만 다르고 나머지는 동일하다. 이진 분류는 양성 클래스에 대한 확률 하나만 출력하고 다중 분류는 각 클래스에 대한 확률 값을 출력한다. 예를 들어 첫 번째 클래스에 대한 확률값이 y1, 두 번째 클래스에 대한 확률값은 y2, 세 번째 클래스에 대한 확률값은 y3로 출력된다. 다중 분류 긴경망은 출력층에 분류할 클래스 개수만큼 뉴런을 배치해야 한다. 다중 분류의 문제점과 소프트맥스 함수 숫자는 확률을 얘기한다. 0.9는 90%이다. 왼쪽과 오른쪽의 신경망 모두 자동차를 타깃 클래스로 예..
MongoDB 연결하기 https://www.mongodb.com/cloud/atlas/lp/try2?utm_source=google&utm_campaign=gs_apac_south_korea_search_brand_atlas_desktop&utm_term=mongodb&utm_medium=cpc_paid_search&utm_ad=e&utm_ad_campaign_id=1718986522&gclid=CjwKCAiA8ov_BRAoEiwAOZogwRJOWJo-GuKttO0DxA5P0m9m3E-wXqcPuVXeRGbLlk41JZeTp1llRBoCoIEQAvD_BwE MongoDB Atlas: Cloud Document Database Cloud-hosted MongoDB service on AWS, Azure,..
hvv_an
'분류 전체보기' 카테고리의 글 목록 (49 Page)