일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- FC layer
- Learning_Rate
- 인공지능
- DataSet
- 머신러닝
- ai
- forensic
- TrainingDataSet
- Model Ensemble
- labelImg
- Softmax Classification
- TestDataSet
- DeepLearning개념
- LogisticRegression
- 모두의딥러닝
- Deep_Learning
- digitalforensic
- suninatas
- Neural Net
- neuralnetwork
- 딥러닝
- relu
- blindsqlinjection
- 텐서플로우
- 모두의 딥러닝
- tensorflow
- sql_injection
- Artificial Intelligence
- HiddenLayer
- NeuralNet
- Today
- Total
목록인공지능 (14)
InformationSecurity-Study
Tensorflow Object Detection API 실습하고 있다. 환경구축까지 성공했으나 막상 돌려보면 정확도가 굉장히 낮고 특정 분류의 대상만 인식하는 걸 알 수 있다. 그래서 내가 직접 수집한 dataset으로 학습시켜서 Object Detection을 구현하고자 한다. 얼마나 걸릴 지는 모르겠으나 열심히 해보자! LabelImg 실습을 진행하기 위해서는 https://github.com/tzutalin/labelImg 에서 git clone을 활용하여 다운로드 받는다. Collect Dataset - 사진을 수집할 때 너무 크지 않도록 주의한다. 사진은 각각 200KB 이하이고, 720x1280 보다 커서는 안 된다. 사진의 크기가 클수록 Training에 더 많은 시간이 걸릴 것이다. --..
1단계: ConvNet의 Conv 레이어 만들기 고양이에게 어떠한 형태의 그림을 보여주었을 때, 그림을 읽어들이는 뉴런이 모두 동작하는 게 아니라 그림의 형태에 따라서 일부분 일부분만 사용하는 것을 알 수 있다. 이 발견에서 착안한 것이 Convolutional Neural Networks라고 한다. (CONV - RELU - POOL)의 과정을 여러 번 반복해서 레이블링하는 Softmax Classification을 통해 분류한다. 처음의 Input 32x32x3 Image --> 5x5x3 filter (한꺼번에 얼마만큼 보고 싶은지 정한다. ) filter는 궁극적으로 한 값(one number)을 만들어낸다. one number에 대한 공식이 아래와 같다. one number = Wx + b = ..
Overfitting이란 무엇일까? 오른쪽 그림과 같이 학습시킬 때에 너무 꼬아서 모든 경우의 수에 맞추어 학습시키면 학습 데이터에 대한 정확도는 높겠지만 테스트 데이터에 대한 정확도는 현저히 낮을 것이다. Overfitting의 문제점? 학습 데이터를 가지고 정확도를 측정했을 때 정확도가 100퍼센트에 가깝지만 테스트 데이터를 가지고 정확도를 측정하면 정확도가 급격하게 낮아져 실전에 사용하기에 부적합할 것이다. Layer가 많아질수록 Training Data에서는 Error가 적어 상당히 학습이 잘 되는 것처럼 보인다. 실전 데이터로 테스트해보면 Error가 어느순간 증가한다. 가장 좋은 해결책은? - 학습 데이터를 많이 준비하는 것! - feature을 줄이는 것! - Regularization을 사..
지난 포스트에서 Vanishing Gradient가 발생했는데, 이에 대한 해결책이 weight 설정과 ReLU이다. 그런데 ReLU를 사용하는 데도 두 번의 시행의 Cost가 다른 결과를 갖는다. 왜 그럴까?? Weight을 초기화할 때 -1~1사이의 Random 값을 가지기 때문이다. 초기값을 쿨하게 0으로 준다면? W가 Chain Rule할 때 사용되는데, 기울기 구하는 계산 결과가 0이 된다. Gradient가 0이 되어서 Gradient가 다 사라지는 문제가 발생한다. 따라서 절대로 모든 초기값을 0으로 주면 안 된다! 학습이 전혀 안 될 것이다. 그렇다면 어떻게 초기값을 설정해주어야 Deep Belief Nets를 잘 학습시킬까?? Forward에서 3개의 input과 4개의 output을 갖..
하나의 Unit으로 해결하기 어렵기 때문에 여러 개의 Layer에 걸쳐서 학습시킨 결과, XOR문제를 해결하였던 실습을 지난 Lec9의 Lab1에서 하였다. 각각의 Layer 사이에는 Sigmoid연산이 있는 것을 볼 수 있는데, 이런 함수들을 이제 네트워크에서는 "Activation function"이라고 부른다. 하나의 값이 그 다음 값으로 전달될 때 어느 값 이상이면 Activate되고 어느 값 이하이면 Deactivate되기 때문이다. 3단 Layer는 어떻게 구성할까?? 벡타들이 복잡해지는데, 2 input X에 5 Output을 원한다면 Next Layer에서 5 Input X를 해주면 된다. 또 4 Output을 얻고자 한다면 그 다음 Input에 4를, 최종 Output에 1의 값을 설정해..
지난 실습에서 Neural Net을 이용하여 XOR문제를 해결해보았다. 학습을 많이 할 때 진행상황을 한 눈에 볼 수 있게 하는 것이 TensorBoard이다. 이전의 방법은 많은 숫자를 화면에 출력함으로써 값의 변화들을 보았는데, 숫자가 많으니 복잡한 경향이 있다. Tensorboard는 Step에 따라 Loss의 변화를 한 눈에 보여준다. 이를 사용하기 위한 5단계의 Step이 있다. Step 1: From TF graph, decide which tensors you want to log 우선 TensorFlow로부터, 어떤 것을 Logging할 것인지 정하는 게 우선이다. Step 2/3: Merge summaries and create writer After creating session 어떤 ..
Neural Net을 사용해서 XOR을 해결해보도록 하겠다. A와 B와의 입력이 있을 때 X의 결과가 나온다. 서로 다른 값이면 1이면 같은 값이면 0의 결과가 나온다. 이를 가지고 모델을 학습할 수 없을까? 이 instance data를 파일에서 읽어와야하겠지만, 4개의 배열만 있기 때문에 바로 데이터 형식으로 삽입 가능하다. 텐서플로우로는 쉽게 가능하다. logistic regression을 사용할텐데, 복잡한 softmax를 사용할 필요없다. placeholder를 아니까 이로 x, y 값을 정하고 이에 따라 weight을 정해야 한다. 2개의 입력에 따라 out이 1개이기 때문에 weight은 [2, 1]이 되고 out이 1개이기 때문에 bias도 [1]의 값을 갖는다. 이것을 Sigmoid에 넣..
이 XOR이 굉장히 간단했지만 많은 뉴럴 연구자들에게 절망을 주었던 로직이었다. 여러 개의 Logic Regression Unit들을 합치면 이에 대한 문제를 해결할 수 있다는 것이다. 하지만 학습은 어떻게 할까? X1, X2와 W, B와의 연산 결과값인 Y1, Y2로 다시 연산을 하면 최종적인 XOR 값을 얻을 수 있다. 이 값이 XOR과 같다는 점에서 여러 개의 Logic Regression Units을 이용하면 XOR을 해결할 수 있음을 알 수 있다. 위의 식을 종합적으로 표현하면 위와 같다. 이는 앞서 보았던 Neural Nets와 비슷한 형태이다. 이런 식으로 텐서플로우로 구현이 가능하다. 2번째 최종적인 결과가 hypothesis이다. 하지만, 문제로 던져준, w1, b1, w2, b2는 비디..