空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

Machine Learning

機械学習のお勉強(CNN)

全結合層の欠点 畳み込み層と比較してパラメータ数が膨大になる コンテキストの活用が難しい 位置ずれに弱い 畳み込みニューラルネットワーク(CNN) 全結合層の問題点はデータの形状が無視されてしまうこと。例えば、画像28×28ピクセルの形状を784個のデー…

機械学習のお勉強(chainerの概要)

chainerの特徴 計算グラフ 全結合層におけるバックワード計算 Config オブジェクト Variableクラス Functionクラス Linkクラス Chainクラス Optimizerクラス Trainerクラス Reporterによる監視対象のフック Updateクラス chainerの特徴 ネットワーク構築と学…

機械学習のお勉強(オプティマイザーと学習率とエポック、イテレーション)

オプティマイザー 勾配 勾配降下法 確率的勾配降下法 ミニバッチ確率勾配降下法 モーメンタムSGD 学習率 AdaGrad Adam エポックとイテレーション エポック イテレーション まとめ オプティマイザー 勾配 勾配(微分に負をかけたもの)が示す方向は関数の値を…

機械学習のお勉強(活性化関数と損失関数と過学習対策)

活性化関数 単位ステップ関数 パーセプトロン 符号関数 パーセプトロン 線形関数 ADALINE,線形回帰 区間線形関数 サポートベクトルマシン シグモイド関数 ロジスティック回帰、ニューラルネットワーク 双曲線正接 ニューラルネットワーク ReLU関数 ニューラ…

機械学習のお勉強(性能評価)

全体の考え方 機械学習における学習方法と性能評価の基礎知識 - Build Insider 交差検定(クロスバリデーション)など機械学習の評価方法まとめ : 新規事業のつくり方 検証 ホールドアウト法 学習データとテストデータを単純に分割 参考: 機械学習の性能を…

ベイズ的最適化・実験計画法のお勉強

目的 少ない実験回数で最適なパラメータを導出したい ベイズ的最適化 まずはこの2つを見てお勉強 1020:ベイズ的最適化の入門と応用 機械学習による機械学習の実験計画 - YouTube » 機械学習のハイパーパラメータ探索 : ベイズ最適化の活用 TECHSCORE BLOG …

機械学習のお勉強(単層ニューラルネットワーク)

人工ニューロン 神経細胞を2値処理を行う単純なゲートとして表現。 z = w0 * x0 + w1 * x1 + .... + wm * xm and phi(z)={ 1 (z>=0) or -1 (z<0) これは脳内の一つのニューロンの働き(発火するかしないか)を模倣している。 パーセプトロンの学習規則 重み…

機械学習のお勉強(全体像)

教師あり学習 クラスラベルを予測するための分類 カテゴリデータをインスタンスに割り当てる 連続値を予測するための回帰 予測したい変数:結果変数 予測に使用される変数:説明変数 強化学習 エージェント:環境とのやりとりに基づいて性能を改善するシステ…

機械学習のお勉強(DeepPose, OpenPose)

やること pythonでのcaffe環境構築 OpenPoseを動かしてみる Caffe Install 設定(GPU) 【Caffe】はじめてCaffeをmakeするまでOn Ubuntu16.04 - 緑茶思考ブログ Ubuntu 14.04にCaffeをインストール(GPU編) - Qiita Installing Caffe on Ubuntu (CPU-ONLY) - Ch…

chainerで動かしたいものリスト

動かしながら理解を深めたい ひとつずつ動かしていく〜(TBD) サンプル集 Chainerのサンプルコードを集めてみた(メモ) - あおのたすのブログ くそ初心者がchainerを理解してちょっといじれるようになるために見るべき5つのサイト - MATHGRAM 2D-CNN Chai…

クラスタリング(k-means)のお勉強

k-meansでクラスタリング(教師なし) import numpy as np from sklearn.cluster import KMeans # size 量的データ features = np.array([ [20, 95, 190], [52, 103, 103], [50, 70, 280], [65, 65, 210], [84, 84, 96], [20, 50, 140], [28, 49, 176], [40,…

Hough変換で直線、円検出をやってみる

import cv2 import numpy as np img = cv2.imread('dave.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray,50,150,apertureSize = 3) lines = cv2.HoughLines(edges,1,np.pi/180,200) for rho,theta in lines[0]: a = np.cos(thet…

マーカーを用いたカメラ位置姿勢推定(OpenCV+ArUco)

ArUcoのマーカー種類 SingleMarker Board ChessBoard Diamond Single マーカの一辺の長さを指定。 マーカとカメラ間の位置関係を求める。 Board マーカの一辺の長さとマーカ間の長さを指定。 ボードとカメラ間の位置関係を求める。 単一マーカより精度は良い…

物体追跡をやってみる(ピンクのボールを追いかける)

やりたいこと:ピンクボールの追跡 OpenCV-Python tutorial OpenCV-Pythonチュートリアル — OpenCV-Python Tutorials 1 documentation OpenCVでのHSVの扱い OpenCVでのHSV色空間lower,upperの取り扱い - Qiita ピンクの色相の検出 lightsalmon : 255,160,167…

機械学習のお勉強(ベイズ推定)

パラメトリックモデルの3つのステップ パラメータを含むモデル(数式)を設定する パラメータを評価する 最良の評価を与えるパラメータを決定する ここで、2.においてパラメータを評価する基準として大きく2つある 1つは誤差を定義して誤差を最小にするパラ…

機械学習のお勉強(特徴量)

TBD Haar-Like 物体の局所的な明暗差の組み合わせにより、画像を判別する LBP(Local Binary Pattern) 物体の局所的な輝度の分布の組み合わせにより、画像を判別する HOG(Histogram of Oriented Gradients) 物体の局所的な輝度の勾配方向の分布の組み合わ…

機械学習のお勉強(最小二乗法、最尤推定法、パーセプトロン)

最小二乗法 ex: 観測値と真値の二乗誤差を最小にするようにn次多項式を解く。 データセットがn以上あると解析的に平方根平均二乗誤差が0の多項式を導くことができる。 平方根平均二乗誤差:解いて求めた多項式から推定する値とデータセットとの値が平均的に…

keras2とchainerの使い方をCNNでくらべてみる

目的:keras2とchainerの使い方の違いを知る まとめ: keras2はmodelの最初の層以外の入力は記述しなくても良い。バックエンドがtheanoとtensorflowで入力の配列が異なる。 chainerはmodelの層追加時、入力と出力の数を記入。入力でNoneと記述すると自動的に…

kerasを動かしてみる~その2:CNN~

tensorflowをバックエンドで動かす .keras/keras.jsonを以下のように書き換え { "image_dim_ordering": "tf", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" } GPUで使う pip install tensorflow-gpu (TBD) CNNのサンプル GitHub - fchol…

機械学習のお勉強(ChainerCV)

ChainerCV↓ コード GitHub - chainer/chainercv: ChainerCV: a Library for Computer Vision in Deep Learning ドキュメント ChainerCV — ChainerCV 0.2.1 documentation Detection Models Faster R-CNN Single Shot Multibox Detector (SSD) Semantic Segme…

機械学習のお勉強(SVM,ニューラルネット、CNN、FCN,YOLO,SegNet etc ...)~参考まとめ~

SVM NN CNN AlexNet VGG FCN YOLO SSD SegNet 3D-CNN chainer sample Fine-tuning インデックスカラー 画像のセグメンテーション keras2とchainerが使いやすそう SVM SVM、ニューラルネットなどに共通する分類問題における考え方 - HELLO CYBERNETICS http:/…

RGBDデータセットのお勉強

参考:List of RGBD datasets INDOOR NYU Dataset v1 ☆ NYU Dataset v2 ☆ SUN 3D ☆ SUN RGB-D ☆ ViDRILO: The Visual and Depth Robot Indoor Localization with Objects information dataset ☆ SceneNN: A Scene Meshes Dataset with aNNotations ☆ Stanfor…

Deep learningの論文まとめサイト&キャッチアップ方法

論文まとめ aonotas.hateblo.jp 2016年のディープラーニング論文100選 - Qiita DeepLearning研究 2016年のまとめ - Qiita Deep Learningの理論的論文リスト - Obey Your MATHEMATICS. わかりやすいブログ Twitter社が発表した超解像ネットワークをchainerで…

Deep Learningの環境構築(Ubuntu14.04+GTX 950M+CUDA+cuDNN)

これから過酷な戦いが始まる… ノートパソコンにDeep Learningの環境をつくってみる. PC環境 目標 Nvidia Driver 悪名高き?ドライバnouveau Nvidia Driverのインストール nvidia-smiについて CUDA CUDA対応GPU CUDAのドライバ CUDAのインストール方法 CUDA環…

Numpy / pandasのお勉強

numpy 配列も@で行列のように計算できる。python3.5以降。 In [7]: import numpy as np In [8]: A = np.array([[1,2],[3,4]]) In [9]: B = np.array([[5,6],[7,8]]) In [10]: C = A @ B @ A.T In [11]: C Out[11]: array([[ 63, 145], [143, 329]]) 以下は同…

kerasを動かしてみる~その1~

tensorflowのインストール Kerasのインストール Kerasの実行 TJOさんの記事を参考にKerasを動かして見ました。感謝です。 参考: KerasをTensorFlowバックエンドで試してみた:「もっと多くの人に機械学習とDeep Learningを」という時代の幕開け - 六本木で…

Ubuntu14.04(CPU only)でSegNetを使ってみる

手順 caffe-segnetのダウンロード git clone https://github.com/alexgkendall/caffe-segnet.git 以下の手順でインストール Caffe | Installation: Ubuntu 以下の手順でMakeコンパイル CPU only の設定に変更 Caffe | Installation For CPU-only Caffe, unco…

機械学習のお勉強(DeepLearning from 0)

参考図書 Deep Learning パーセプトロン 簡単な実装 重みとバイアスの導入 多層パーセプトロン ニューラルネットワーク 活性化関数 出力層の活性化関数 3層のニューラルネットワーク バッチ処理 学習 損失関数 二乗和誤差 交差エントロピー誤差 ミニバッチ学…

データセットの作り方参考まとめ

chainerのデータセットの作り方 LinearやCNN - Qiita 機械学習で用いる顔画像データセットの一作り方(1:WebAPIサービスを用いて候補画像取得) - Qiita 【pylearn2】自分のデータセットを使ってカンタンにGRBMしよう - CORDEA blog

機械学習の参考まとめ

機械学習 機械学習を知識ゼロから学ぶpdf - NAVER まとめ 機械学習はじめの一歩に役立つ記事のまとめ - Qiita Deep Learning Deep Insider: 機械学習エンジニアを目指す人~初中級者のための技術情報サイト Deep Learningによる一般物体検出アルゴリズムの紹…