MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

ラグランジュの未定乗数法による等式制約付き非線形最適化の概要と例題


数学で考える経済学 いかにして問題を処理するか

 

目次

  • 目次
  • はじめに
  • ラグランジュの未定乗数法
  • 例題
  • 参考資料
  • MyEnigma Supporters

はじめに

非線形最適化は、

機械学習や、ロボット工学などで

非常に広く利用されますが、

単純な非線形最適化だけでなく、

変数などに制約を与えたい場合に

よく使用されるのが、

ラグランジュの未定乗数法です。

 

機械学習などでよく使用される

SVMなどにも使用されています。

 

今回は、

このラグランジュの未定乗数法の概要と、

具体的にラグランジュの未定乗数法で

最適化問題を解くPythonサンプルコードを紹介したいと思います。

 

続きを読む

準ニュートン法による最適化Pythonサンプルコード

目次

  • 目次
  • はじめに
  • 準ニュートン法
  • Pythonサンプルコード
  • 参考資料
  • MyEnigma Supporters

はじめに

以前、

ニュートン法による最適化サンプルコードの記事を書きました。

myenigma.hatenablog.com

 

上記のニュートン法は、

収束が非常に早いという特徴がありますが、

ヘッセ行列を計算しないといけないという問題があります。

 

複雑なモデルの場合、

各変数で二次微分した

ヘッセ行列を計算するのは

数式が複雑で難しかったり、正則でない場合は、

逆行列を計算することができず、

そもそもヘッセ行列も計算できないという問題があります。

また、計算したヘッセ行列が正定値でない場合は、

そもそも勾配方向が正確に計算できない場合もあります。

 

そこで、

最適化手法の一つである、

ヘッセ行列を近似的に逐次計算する

準ニュートン法を使うことで、

ヘッセ行列が計算できないモデルにおいても、

高速な最適化が可能になります。

 

今回の記事では、

この準ニュートン法の概要と、

Pythonのサンプルコードを紹介したいと思います。

 

続きを読む

オンライン英会話でよく使う表現まとめ

目次

  • 目次
  • はじめに
  • もう一度おっしゃっていただけますか?
  • その単語を書いてくれませんか?
  • *はなんという意味ですか?
  • 辞書で調べさせてください。
  • *はどのように発音するのですか?
  • 今日は大変勉強になりました。ありがとうございました。
  • 声が聞こえません。
  • 映像が見えません。
  • 今日はインターネットが不安定です。
  • スカイプを再起動していいですか?
  • 雑音がすごいです。
  • わからないです。
  • そのとおり
  • ちょっと考えさせて下さい。
  • 今のわかりましたか?
  • それはいいですね。
  • 読書が好きです。
  • 今の会社には5年勤めています。
  • ちょっとまって下さい
  • 何ページですか?
  • 参考資料
  • MyEnigma Supporters

はじめに

最近、

オンライン英会話をしているのですが、

授業を円滑にすすめるために、

いくつか便利な表現を覚えておくと、

授業が円滑に進むと思うので、

ここでよく使用するものをまとめておきたいと思います。

 

続きを読む

Point Cloud Library(PCL)の各プラットフォームへのインストール方法とサンプルコードを動かす方法

目次

  • 目次
  • はじめに
  • PCLのインストール方法
    • Mac (Homebrewを使う場合)
    • Ubuntu
  • PCLのサンプルコードを動かす方法
    • 1. PCLのサンプルコードを書く
    • 2. CMakeLists.txtを書く
    • 3. ソフトのビルドする
  • 参考資料
  • MyEnigma Supporters

はじめに

先日、

Point Cloud Libraryの基本的なモジュールの説明をしたので、

myenigma.hatenablog.com

今回は、各種OSのインストール方法と、

最も単純なPCLコードを

動かす方法について説明します。

 

続きを読む

Point Cloud Library (PCL)の各モジュールの概要

目次

  • 目次
  • はじめに
  • Filters
  • Features
  • Keypoints
  • Registration
  • KdTree
  • Octree
  • Segmentation
  • Sample Consensus
  • Surface
  • Range Image
  • I/O
  • Visualization
  • Common
  • Search
  • 参考資料
  • MyEnigma Supporters

はじめに

ロボティクスにおいて、

三次元点群処理は非常に重要です。

 

Point Cloud Library(PCL)は

ROSからスピンアウトした

三次元点群処理用ライブラリで、

ロボティクスにおいて、

広く利用されています。

PCL - Point Cloud Library (PCL)

  

今回は、

PCLの各モジュールの概要について説明したいと思います。

基本的には下記のオフィシャルドキュメントを意訳したものになります。

 

続きを読む

ネットワーク初心者のためのネットワーク調査ツールnmapの使い方

目次

  • 目次
  • はじめに
  • インストール
    • Mac
    • Ubuntu
    • Windows
  • nmapの使い方
    • 指定したIPのコンピューターの使用ポートを調べる
    • 指定したネットワークの使用されているIPを一覧にする
    • 指定したIPアドレスのコンピューターのOSの確認
  • nmapのGUIソフトzenmapの使い方
  • 参考資料
  • MyEnigma Supporters

はじめに

nmapはフリーのネットワーク調査ツールです。

nmap - Wikipedia

Nmap: the Network Mapper - Free Security Scanner

 

このnmapを使うことで、

あるIPアドレスのコンピューターの使用中のポートを調べたり、

ローカルネットワークに繋がっている

コンピューターの一覧を作ったりすることができます。

 

映画のマトリックスで、

トリニティがハッキングする時に使った

ツールとしても有名になりました。

10hm-matrix.jpg (JPEG 画像, 640x388 px)

 

今回は、

このnmapの使い方についてまとめておこうと思います。

 

続きを読む

ネットワーク初心者のためのssh入門

目次

  • 目次
  • はじめに
  • sshとは
  • sshの基本的な使い方とオプション
    • あるIPアドレスにログインする場合
    • ポートを指定
    • ログインアカウントを指定
    • 秘密鍵を指定してログイン
    • クライアント側のIPアドレスを指定
    • sshのバージョンを表示する
    • X11のGUIをssh越しに使う
  • sshポートフォワーディング
  • sshサーバを立てて、外部から処理をする
    • Macの場合
  • sshで対話的なコマンド入力を自動化する
  • .ssh/config
  • 参考資料
  • MyEnigma Supporters

はじめに

おそらく、

ターミナルで生活するエンジニアにとって、

sshは最も利用するツールの一つだと思います。

 

今回は、

ネットワーク技術初心者である

自分のような人のために、

sshの各種オプションなどの使い方をまとめました。

 

続きを読む

高速最近傍点探索ライブラリFLANNを使ってみる

目次

  • 目次
  • はじめに
  • 最近傍点探索とは
  • FLANN (Fast Library for Approximate Nearest Neighbors)
  • インストール方法
  • C++でFLANNを使う
  • Radius Searchによる最近傍点探索
  • 参考資料
  • MyEnigma Supporters

はじめに

あるデータ群の中で、

最も近いデータを選ぶ

最近傍探索は、

様々なアルゴリズムで使用されますが、

それを高速に実現するには、

データ構造から工夫する必要があります。

 

今回は、上記の目的を達成するための

C++ライブラリFLANNを紹介したいと思います。

 

続きを読む

自作サーバに個人用GitHubを作れるgitbucket入門

目次

  • 目次
  • はじめに
  • GitBucket
  • インストール前にGitbucketを試す。
  • インストール
    • Javaのランタイムを使う
      • UbuntuにJava8をインストールする
    • docker を使う
  • Gitbucketのアップデート
  • 基本的な使い方
  • Jenkinsとの連携
  • gitbucketに関する質問
  • 参考資料
  • MyEnigma Supporters

はじめに

GitHubは最高ですが、

公開したくないコードなどをGitHubで利用するには、

有料プランに入る必要があります。

 

月7ドルなので払ってもいいのですが、

すでに自宅サーバなどを運用している人には、

いわゆるGitHubクローンと言われるソフトを使うことで、

無料で自作サーバに個人用GitHubを立てることができます。

 

GitHubクローンとして有名なものに、

GitLabと

Gitbucketがありますが、

github.com

GitLabはインストールが大変そうだったのと、

見た目があまりGitHubに似てないこと、

そして、GitLabのキャラクターがあまり可愛くないことから、

Gitbucketを今回試してみることにしました。

 

下記で、基本的な使い方や注意点などを紹介したいと思います。

 

続きを読む

ロボティクスにおける地磁気センサの基礎知識

目次

  • 目次
  • はじめに
  • 地磁気センサとは
  • 地磁気センサのデータの単位
  • 地磁気センサの種類
  • 2軸地磁気センサにおける方位計算の方法
  • 3軸地磁気センサにおける方位計算の方法
  • 参考資料
  • MyEnigma Supporters

 

はじめに

これまで

様々なロボット用センサの基礎情報をまとめてきましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

今回は、

ロボットや車両の方位推定にしばしば利用される、

地磁気センサの基礎的知識についてまとめたいと思います。

 

続きを読む