Machine Learning
Deep learning malware detection
Deep learning malware detection
2017.04.30DL4MD단순히 어떤 API를 사용하는지를 학습. API의 순서 등은 고려하지 않고 malware에서 많이 등장한 API를 사용하면malware로 판정. 인용수도 1회. Deep Neural Network Based Malware Detection Using Two Dimensional Binary Program Features15.08. Semi-supervised classification for dynamic Android malware detection 17.04 Semantics-aware malware detection=============여기까지만 인쇄... Large-scale malware classification using random projections and neural net..
ILSVRC2016 Hikvision팀과 Trimps-Soushen팀의 기법
ILSVRC2016 Hikvision팀과 Trimps-Soushen팀의 기법
2017.04.25HikvisionEnsemble A of 3 RPN and 6 FRCN models, mAP is 67 on val2 Our work on object detection is based on Faster R-CNN. We design and validate the following improvements: * Better network. We find that the identity-mapping variant of ResNet-101 is superior for object detection over the original version. * Better RPN proposals. A novel cascade RPN is proposed to refine proposals' scores and loca..
Learning Fine-grained Image Similarity with Deep Ranking 정리
Learning Fine-grained Image Similarity with Deep Ranking 정리
2017.04.25https://arxiv.org/pdf/1404.4661.pdf 이미지 간의 distance(similarity)를 구하는 방법(함수)를 학습하는 model이다. detection & classfication 신경망을 거치는 경우, 그 출력을 그대로 similarity에 사용하면 안되나?image classification과 similar image ranking task는 본질적으로 다르다.출력 뉴런 값들을 저장해 놓았다가 distance를 계산하는 방법을 생각해 보았는데, class 내의 두 이미지 P, Q의 비교를 위해 "P, Q가 다른 class 각각에 속할 확률이 얼마나 되는지"를 사용하기 때문에 당연히 부정확하다.detection & classification 신경망의 출력을 k(.)라고 하면..
[TensorFlow] TensorBoard
[TensorFlow] TensorBoard
2017.04.23summaries_and_tensorboard ```bash$ tensorboard --logdir=./tflogs/log-171113-1335 --port 8080``` 크게 다음 세가지 시각화를 지원한다.Visualizing learningGraph visualizationEmbedding visualization Visualizing learning1. 시각화하고 싶은 노드를 summary operations의 인자로 넘기면 그래프에 summary operation이 추가된다.아래의 경우 노드 logits에 tf.summary.histogram ops를 붙인다고 생각하면 된다.```pylogits_hist = tf.summary.histogram('logits(output neuron)', logi..
[TensorFlow] <lagacy> input pipelines / Threading and Queue
[TensorFlow] <lagacy> input pipelines / Threading and Queue
2017.04.22input pipeline (guide)TensorFlow에서 파일을 읽어들이는 효과적인 방법은 input pipeline을 구성하는 것이다.input pipeline은 다음과 같은 단계로 구성된다.```python# step 1fnames = glob.glob("../sctf_asm/imgs/*") # step 2 : FIFO queue를 생성하고 filename을 담는다.# shuffling, epoch limit도 이 메소드가 지원한다.fname_queue = tf.train.string_input_producer(fnames) # step 3 : file format에 알맞는 FileReader 설정reader = tf.WholeFileReader()fname, content = reader.re..
[TensorFlow] CNN
[TensorFlow] CNN
2017.04.22CNN다음과 같이 그래프를 미리 빌드해 놓은 다음,신경망에 통과시킬 input image를 실행 시점에 ``py sess.run( , feed_dict={})``를 통해 넘긴다.```python# 구식 방법W1 = tf.Variable(tf.random_normal([3, 3, 1, 32], stddev=0.01)) #H, W, C, FNb1 = tf.Variable(tf.zeros([32])) L1 = tf.nn.conv2d(X_img, W1, strides=[1, 1, 1, 1], padding="SAME")L1 = tf.nn.relu(L1+b1)L1 = tf.nn.max_pool(L1, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME")L1 = t..
[TensorFlow] 자료형과 기본적인 사용법
[TensorFlow] 자료형과 기본적인 사용법
2017.04.20https://www.tensorflow.org/programmers_guide/graphs#building_a_tfgraph 텐서플로우는 dataflow-graph를 구성하고, graph의 일부를 Session으로 구성해 실행시키는 방식이다.Note ) 단순히 TensorFlow API를 호출하는 것 만으로도 tf.Graph에 tf.Operation(Node)와 tf.Tensor(Edge)가 추가된다.따라서 노드가 추가될 graph를 명시할 수 있는데, 명시하지 않는 경우 default graph에 추가된다.다른 graph에 노드를 추가하려면 ``py graph.as_default()``를 사용한다. * ``py with``가 끝나면 다시 default context다.```python>>> impor..
Supervised, Unsupervised / Linear Regression
Supervised, Unsupervised / Linear Regression
2017.04.15ANN에서 문제를 해결하는 방식은 두 단계로 이루어져 있다.학습 : 학습 데이터를 이용해 가중치 매개변수를 학습한다. (지도 학습, SL(Supervised learning))추론 : 학습한 가중치 매개변수를 이용해 입력 데이터에 대한 결과를 추측한다.추론은 다시 분류(Classification)와 회귀(Regression)로 나뉜다. Supervised, Unsupervised지도 학습과 비지도 학습의 차이는, 학습 데이터가 라벨링되어 있느냐이다.라벨링되어 있는 경우 데이터를 어떻게 분류해야 할 지를 알고 있으므로 주어진 데이터를 올바른 곳에 분류하게 된다.그러나 비지도 학습의 경우 데이터가 라벨링되어 있지 않기 때문에 비슷한 특징을 가진 데이터들 끼리 묶을 수는 있겠지만, 이 데이터가 무엇을 의미하는..
CNN model과 다양한 분야에 딥러닝을 적용한 논문들
CNN model과 다양한 분야에 딥러닝을 적용한 논문들
2017.04.14https://github.com/sbrugman/deep-learning-papers CNN 기반 DNNVGG구성이 간단해서 응용하기 좋다.https://arxiv.org/abs/1409.1556 GoogLeNet가로 방향에 폭이 있는 인셉션 구조.https://arxiv.org/abs/1409.4842 ResNet층이 매우 깊어서 gradient vanishing 문제를 해결하기 위해 스킵 연결을 도입한 것이 특징.https://arxiv.org/abs/1512.03385 지도 학습 ( supervised learning )사물 검출 ( Object Detection )cs231n lecture 8 Faster R-CNN ( Regions with Convolutional Neural Network ..
딥러닝 ( DL, Deep Learning ) / 심층 신경망 ( DNN )
딥러닝 ( DL, Deep Learning ) / 심층 신경망 ( DNN )
2017.03.29딥러닝, 심층 신경망딥러닝은 사실상 층을 깊게 쌓은 심층 신경망(DNN)을 가리키는 말이다.여태까지는 오버피팅, 높은 시간 복잡도 때문에 층을 깊게 쌓는게 불가능했었지만오버피팅은 Dropout으로, 높은 시간 복잡도는 GPU의 병렬처리를 이용해 해결하여 층을 깊게 쌓는 것이 가능해져 주목받게 되었다. 여러 머신러닝 알고리즘 중에 신경망이, 그 중에 층을 깊게 쌓은 심층 CNN이 이미지 인식이나 자연어 처리 등에서 압도적인 성능을 보인다. 심층 신경망의 이점1. 신경망의 매개변수 수가 줄어든다.층을 깊게 했을 경우 더 적은 매개변수로 같거나 높은 수준의 표현력을 가질 수 있다. 가령 입력 데이터의 일부인 5x5 영역이 Conv 연산에 참여하려면, 층이 1개인 신경망에서 Conv layer의 필터의 크기는 ..
합성곱 신경망 ( CNN, Convolutional Neural Network )
합성곱 신경망 ( CNN, Convolutional Neural Network )
2017.03.27CNN, Convolutional Neural NetworkCNN은 합성곱(Convolution) 연산을 사용하는 ANN의 한 종류다.Convolution을 사용하면 3차원 데이터의 공간적 정보를 유지한 채 다음 레이어로 보낼 수 있다.대표적인 CNN으로는 LeNet(1998)과 AlexNet(2012)이 있다.VGG, GoogLeNet, ResNet 등은 층을 더 깊게 쌓은 CNN기반의 심층 신경망(DNN)이다. CNN의 네트워크 구조지금까지 다룬 신경망은 이전 계층의 모든 뉴런과 결합되어 있었고, 이를 Affine layer라고 불렀다.이런 식으로 이전 계층의 모든 뉴런과 결합된 형태의 layer를 fully-connected layer(FC layer, 전결합 레이어) 또는 Dense layer라고..
인공신경망 ( ANN ) #6-3 최적화 : 오버피팅 방지( weight decay, droupout ) / 하이퍼파라미터 최적화
인공신경망 ( ANN ) #6-3 최적화 : 오버피팅 방지( weight decay, droupout ) / 하이퍼파라미터 최적화
2017.03.26오버피팅( Overfitting )오버피팅은 훈련 데이터에만 지나치게 적응하여 시험 데이터에 제대로 반응하지 못하는 현상을 말한다.주로 다음 경우에 발생한다.매개변수가 많고 표현력이 높은 모델인 경우훈련 데이터가 적은 경우 Regularization오버피팅을 억제하기 위해서 다음과 같은 regularization 기법을 사용한다.regularization은 일반화 정도로 번역될 것 같다. 신경망이 범용성을 갖도록 처리하는 거니까. normalization, 정규화와는 다르다. weight decay ( L2 regularization )L2 regularization은 가장 일반적으로 사용되는 regularization 기법으로, 오버피팅은 가중치 매개변수의 값이 커서 발생하는 경우가 많기 때문에 가중치..