본문 바로가기

IT

[Ubuntu16.04] Install Pycharm Community / 파이참 커뮤니티 설치 이번 포스팅에서는 우분투 16.04에서 파이참 커뮤니티 설치하는 방법에 대해서 이야기하겠습니다. 1. Add PPA repository PPA 레파지토리에 다음과 같은 Pycharm 레파지토리를 추가해줍니다. # sudo add-apt-repository ppa:mystic-mirage/pycharm sudo apt-get update # 2. Install Pycharm Community # sudo apt-get install pycharm-community # 3. Execute Pycharm Community 더보기
[VggNet16 / 일지] VggNet Scratch from bottom with Tensorflow 어느정도 성과가 나온 남의 모델을 이용해서 딮러닝 공부나 연구를 했었는데, 그냥 대뜸 한번 VggNet부터 하위 상위 모델부터 Tensorflow로 긁어보자는 마음을 가지고 토이프로젝트를 시작해보려고 합니다. 먼저 VggNet부터 시작할 예정이고, 차례차례 inception, ResNet, R-CNN 등등의 상/하위 모델을 다뤄볼 생각입니다. 포스팅의 구성은 학습시키면서 겪는 삽질기를 올려볼 생각입니다. 1. 기획 처음 시작은 VggNet 논문에 있는 내용을 기반으로 구현할 수 있는 수준을 최대한 빨리 구현 한 후에 수정/개선하는 식으로 진행하려고 계획했습니다.데이터셋은 ImageNet 데이터를 받기가 조금 까다로워서 CIFAR-100 데이터로 진행했습니다. VggNet 저자들은 ImageNet 1000.. 더보기
[Code Review/ self-driving lab] Udacity Self-driving Car - (1) 오늘은 모두연 Self-driving lab에서 진행하기로 했던 코드리뷰를 진행하려고합니다. 코드리뷰는 병학님의 친구분께서 Udaycity 수업을 들어면서 진행한 깃헙 프로젝트에 대해서 진행합니다. windowsub0406/Behavior-Cloning만약에 코드를 실행하는데 문제가 있으시다면, 아래 저장소에서 코드를 사용하시면 됩니다.SsaRu/Behavior-Cloning해당 코드는 udaycity의 car-sim이라는 시뮬레이터를 사용합니다. udacity/self-driving-car-sim 1. 테스트 영상 2. 메인 코드 이번 포스팅에서는 개략적인 코드만 리뷰할 생각입니다.해당 프로젝트의 drive.py를 보면 다음과 같이 구성되어있습니다. import argparse import base64.. 더보기
[Performance Measurement] Precision/Accuracy 인식/탐지 기술의 성능을 평가하기 위해서는 검출율과 정확도를 동시에 고려해야합니다. 이유는 다음과 같은 예를 들어서 설명할 수 있습니다.이미지에서 사람을 자동으로 찾아주는 영상 인식 기술을 개발하였다고 가정했을 때,A 기술의 검출율은 99.99%입니다.B 기술의 검출율은 50%입니다. 라고 하였을 때, 어떤 기술이 더 나은 기술인가? 라고 이야기 했을 때, 많은 사람들이 A라는 기술이 더 좋다고 판단할 것입니다.하지만 해당 내용은 오검출에 대한 내용이 빠졌기 때문에, 잘못된 판단입니다. 문제를 조금 바꿔서,A라는 기술은 이미지에 있는 사람을 99.99% 잡아내나, 이미지 1장 당 평균 10건 정도의 오검출이 발생합니다.B라는 기술은 이미지에 있는 사람들 중 50% 잡아내나, 오검출은 발생하지 않습니다. .. 더보기
LooseCut: Interactive Image Segmentation with Loosely Bounded Boxes abstract 이미지에 있는 관심있는 object를 interactive하게 segment하는 기본적으로 사용되는 방법은 객체를 포함하는 상자를 만들고 binary labeling을 지정하는 것입니다. 하지만 이러한 interactive하게 이미지 segment하는 기존 알고리즘은 객체에 밀착해서 객체를 포함하는 상자를 만드는 방법을 선호합니다. 이러한 방법은 객체를 포함하는 상자를 만드는것에 대해서 부담을 주고, 다른 object detecting 알고리즘으로 검출한 boundery box를 사용하는 것에 대해서 제한사항을 주게됩니다. 본 논문에서는 boundery box가 느슨하게 잡히더라도 object segment를 잘할 수 있는 새로운 LooseCut 알고리즘을 제안합니다. 우리는 느슨한 박스.. 더보기
[번역:: Gradient Clipping] Why you should use gradient clipping 최근 자율주행차량 논문을 읽다가 계속해서 Gradient Clipping이라는 단어가 나와서 공부를 하던 도중에 해당 블로그 글을 찾게되서Gradient Clipping이 무엇인지에 대해서 해당 블로그 글을 번역해보려고합니다. "Deep learning" 책을 읽다가 Gradient Clipping이라는 새로운 팁을 알게되었습니다. 딮러닝 연구자/엔지니어 사이에서는 이미 상식같은 내용이었지만, 어쨌든, 나는 Gradient Clipping이 무엇인지 몰랐었습니다. 문제 recurrent network나 deep neural network같은 강한 비선형 목적함수를 가지고 있을 경우에에 미분값은 매우 크거나 작아지는 경향이 있는 문제가 있습니다. 이러한 가파른 지녁은 절벽과 비슷하며, 이러한 결과는 여러개.. 더보기
[CNN] Convolution Neural Network 목차CNN의 역사Fully Connected Layer의 문제점CNN의 전체 구조Convolution & CorrelationReceptive FieldPoolingVisualizationBackpropagationReference 1. CNN의 역사 1989년 LeCun이 발표한 논문 "backpropagation applied to handwritten zip" 에서 처음으로 소개됨2003년 Behnke의 논문 "Hierachical Neural Network for image interpretation"을 통해서 일반화가 됨2003년 Simard의 논문 "Best practices for convolutional neural networks applied to visual document analy.. 더보기
[MLP::Multi Layer Perceptron] Swallow Neural Networks :: Fully Connected Layer 목차 Perceptron Multi-Layer-Perceptron(MLP)Activation Function을 가진 새로운 neuron model - [활성화 함수]Softmax Function - [소프트 맥스]Cost Function - [손실 함수]Gradient Descent Algorithm - [경사 하강법]Backpropargation - [오류-역전파] 1. Perceptron Perceptron은 rosenblatt가 고안한 Artificial Neural Network의 기본 모델입니다. 인공지능의 초기연구는 Perceptron으로 시작하였으며, 이를 이용해서 여러 조건에 대한 가중치를 조절해서 특정 결과를 출력할 수 있습니다. 임의의 가중치의 값 와 를 정합니다. 입력 에 대해서 가중.. 더보기
[Material] 비숍의 패턴인식과 머신러닝 이번 포스팅은 제가 가다듬어서 올릴 내용이 아니라, 이미 번역 퀄리티가 너무 좋기 때문에 직접적으로 링크를 답니다.Christopher Bishop - Pattern Recognition and Machine Learning 번역본입니다. 더보기
[Python GUI Programming :: Tkinter] Hello, Again 대규모 프로그램을 작성할 때, 일반적으로 좋은 아이디어는 여러분의 코드를 하나이상의 클래스로 랩핑하는 것입니다. 이번 예제는 Matt Conway의 Hello, World 프로그램입니다. - Second Tkinter Program from tkinter import * def __init__(self, master): frame = Frame(master) frame.pack() self.button = Button( frame, text="QUIT", fg="red", command=frame.quit ) self.button.pack(side=LEFT) self.hi_there = Button(frame, text="Hello", command=self.say_hi) self.hi_there.pac.. 더보기