본문 바로가기

분류 전체보기

HTTP to HTTPS 만약 여러분의 웹서버가 HTTP 연결을 사용한다면 보안에 매우 취약하며, 실제로 호스팅하는 브라우저에서 보안 취약 아이콘을 띄우거나 심할 경우 접속이 거부당할 수 있습니다. HTTPS 보안 연결을 사용하여 이러한 취약점을 보완해봅시다 ! 준비물 : 먼저 웹서버가 도메인과 연결되어있어야 하고, 정상적으로 A 레코드가 생성되어있어야 합니다. (참고 : TAKE ROUTE53 FOR DOMAIN !) STEP 1 : ACM(Amazon Certificate Manager)에서 인증서 발급 HTTPS 보안 연결을 하기위해 먼저 공인된 인증서를 발급받아야합니다. AWS 자체에서 발급 가능한 무료 인증서를 이용할 것이므로 Certificate Manager 콘솔에 접속한 후, 인증서 요청을 클릭합니다. 이용해본 적..
[#E21] Recurrent Neural Network (RNN - PART 3/3) 이전의 "hi hello" 문자열이나 LONG SEQUENCE RNN에서 사용했던 긴 문자열과는 달리, 사용자로부터 직접 데이터(문자열)을 입력받는 것을 DYNAMIC RNN이라고 합니다. 이것은 데이터에 이미 정해진 문자열 길이가 아닌 가변적인 문자열 길이를 사용한다는 의미입니다. 예로 3개의 문자열 'hello', 'eolll', 'lleel'이 있다고 가정합니다. 12345678910111213import tensorflow as tfimport numpy as npimport pprintpp = pprint.PrettyPrinter(indent=4)sess = tf.InteractiveSession() h = [1, 0, 0, 0]e = [0, 1, 0, 0]l = [0, 0, 1, 0]o = [..
[#E20] Recurrent Neural Network (RNN - PART 2/3) 저번 [#E20 : Recurrent Neural Network (RNN - PART 1/3)] 포스트에서는 Long Sequence RNN를 직접 구현했습니다. 그러나 우리가 구현한 RNN은 테스트 시 좋은 성능을 내지 못하는데, 그 이유는 다음과 같습니다. 1. 셀의 크기가 너무 작다. solution : 셀을 wide & deep 하게 구성한다. (use Deep Learning - Stacked RNN) 이것은 텐서플로우에서 제공하는 MultiRNNCell 메소드를 이용하여 쉽게 해결할 수 있습니다. 123456# 기존 1개의 Cellcell = tf.contrib.rnn.BasicLSTMCell(hidden_size, state_is_tuple=True) # 2개의 Cellcell = tf.co..
[#E19] Recurrent Neural Network (RNN - PART 1/3) RECURRENT NEURAL NETWORK (RNN) 은 도출된 이전의 시퀸스 weight 값이 다음 시퀸스 weight값에 영향을 미치면서 학습하는 모델입니다. 이것은 다음 그림과 같이 각 시퀸스들의 연결로 동작합니다. 위의 그림을 간단한 함수 식으로 나타내면 아래와 같습니다. (h = hidden layer) 따라서 새로운 state는 이전의 state의 영향을 받는 구조가 됩니다. 이에 따른 weight는 총 3개가 존재하며, 각각 이전 state(Ht-1) 에 대한 weight, 새로운 state의 x값(Xt) 에 대한 weight, y 값에 대한 새로운 state(Ht) 의 weight 값입니다. 이 3개의 weight값을 이용해서 RNN 공식을 구현하면 다음과 같이 표현됩니다. (이것은 크게..
[#E18] CNN을 이용한 MNIST 데이터 분류 Convolution Neural Network (CNN) 은 이미지 분석에 사용되는 인공신경망의 한 종류이므로 이를 MNIST 데이터 분류에도 사용할 수 있습니다. 먼저 다음과 같이 데이터를 불러오고, 파라미터를 설정합니다. 12345678910import tensorflow as tfimport random mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # hyper parameterslearning_rate = 0.001training_epochs = 15batch_size = 100total_batch = int(mnist.train.num_examples / batch_size)cs 학습은 총 15 epoch 동안 진행되며, 효율..
[#E17] Convolution Neural Network (CNN - 실전편) 이번에는 실제로 텐서플로우에서 Convolution 데이터와 Pooling이 어떻게 진행되는지에 대해 알아보겠습니다. 먼저 다음과 같이 예시 이미지를 생성합니다. 123456789101112import numpy as npimport tensorflow as tfimport matplotlib.pyplot as plt sess = tf.InteractiveSession()image = np.array([[[[1],[2],[3]], [[4],[5],[6]], [[7],[8],[9]]]], dtype=np.float32)print(image.shape) #-> (1, 3, 3, 1) #show imageplt.imshow(image.reshape(3,3), cmap='Greys')cs 해당 이미지는 왼쪽 상..
[#E16] Convolution Neural Network (CNN - 준비편) CONVOLUTION NEURAL NETWORK는 합성곱 신경망으로 시각적 이미지를 분석하는데 사용되는 인공 신경망입니다. 이것은 여러 개의 CONV 레이어, RELU 레이어, POOL 레이어, 그리고 마지막으로 모든 레이어가 하나로 연결된 FULLY CONNECTED Layer로 구성됩니다. 예시로 아래의 그림은 자동차 이미지를 CNN으로 인식하는 과정의 구성을 나타낸 것입니다. 그림과 같이, 이미지를 작은 부분으로 잘라내어 (Filter) 입력에 넘기는 레이어가 바로 CONV 레이어입니다. 이 필터는 이미지의 모든 부분을 훑어오게 됩니다. 위의 그림에서 32X32는 각 픽셀 수를, 마지막 3은 색을 나타냅니다. 이 임의의 이미지에서 5 X 5 필터를 이용할 때, 각 필터에 담긴 이미지는 Wx+b(we..
[#E15] MNIST 데이터란? MNIST 데이터란 필기 숫자의 분류를 위한 학습 데이터 집합입니다. 즉, 이 데이터는 어지럽게 필기된 숫자가 어떤 숫자에 해당하는지 정확하게 맞추기 위한 학습을 위한 것입니다. 해당 데이터는 다음과 같이 이미지와 해당하는 라벨로 구성되어 있습니다. 또한 이것은 다음과 같이 파이썬 폴더의 MNIST_data 폴더에서도 확인할 수 있습니다. train- 파일은 학습데이터입니다. 이것은 전체 데이터의 70퍼센트로, t10k- 파일은 테스트용 데이터로 30퍼센트를 사용합니다. ( 기본적으로 학습은 70퍼센트, 테스트는 30퍼센트를 사용합니다 ) 이 포스트에서는 세 가지의 다른 방법으로 학습을 진행합니다. 1. FANCY SOFTMAX REGRESSION [#E8 : FANCY SOFTMAX REGRESSION..