MyEnigma

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

Python製ハイパーパラメータ学習ライブラリoptunaを使って様々な言語のコードを最適化する方法

目次

  • 目次
  • はじめに
  • ハイパーパラメータ学習ライブラリoptuna
  • Pythonのコードをoptunaでパラメータ最適化してみる。
  • C++のコードをoptunaでパラメータ最適化してみる
  • Juliaのコードをoptunaでパラメータ最適化してみる
  • 今後optunaに期待すること
    • create_studyとstudyの関数の統合
    • 他の言語との統合方法のexampleの拡充
  • GitHubリポジトリ
  • 参考資料
  • MyEnigma Supporters

はじめに

最近、最適化技術の勉強の一貫として、

ベイズ統計・最適化を勉強しようと思っています。

そこで、以前PFNが公開した

ベイズ最適化による、ハイパーパラメータ自動最適化ツールである

optunaを使ってみました。

github.com

 

今回の記事では、簡単なoptunaの紹介と、

optunaは、Python製のツールですが、

標準入出力を使えば、任意のプログラミング言語のシステムでも

簡単にパラメータ学習できたので、その方法を紹介したいと思います。

続きを読む

プログラミング言語におけるremとmod

目次

  • 目次
  • はじめに
  • rem と modを理解するのに参考になるツイート
  • 参考資料
  • MyEnigma Supporters

はじめに

10年ほど、プログラミングをしているのに、

剰余のremとmodを理解していなかったので、

Twitterでいろいろ教えてもらった内容をメモしておきます。

続きを読む

初めて制御工学の基礎を学ぶのにおすすめの本『はじめての制御工学 改訂第2版』

目次

  • 目次
  • はじめに
  • 書評
  • 読書メモ
  • 参考資料
  • MyEnigma Supporters

はじめに

今回の記事は、

制御工学 Advent Calendar 2018, 13日目の記事です。

 

幸いなことに、

冒頭の書籍を、著者の方から献本して頂いたので、

簡単に書評させていただきます。

献本いただきました😀。著者の方々ありがとうございます。全ページカラーで、グラフとかすごく見やすくていい感じです。熟読して書評させていただきます。

 

続きを読む

Windows10でcコードからdllを作り、Julia1.0から呼び出す方法

目次

  • 目次
  • はじめに
  • 基本的なやりかた
  • 1. mingwの64bit版とgccの64bit版をインストールする。
  • 2. 環境変数の設定
  • 3. コードのコンパイル&Juliaから実行する
  • 参考資料
  • MyEnigma Supporters

はじめに

Juliaでは、ccallという関数を使うと、

簡単にc言語のコードから生成された

共有ライブラリの関数を利用することができますが、

Windows10+Julia1.0で実施しようと思ったところ、

色々ハマったので、やり方をメモとして残しておきます。

続きを読む

ユニットテストカバレッジ可視化入門

目次

  • 目次
  • はじめに
  • PythonプロジェクトをTravis CI上でテストして、Coverallsでカバレッジを可視化する
  • JuliaのプロジェクトをTravis CI上でテストして、Coverallsでカバレッジを可視化する
  • 参考資料
  • MyEnigma Supporters

はじめに

近年、プログラミングをする上で、

テストを書き、そのテストを継続的に実行する

継続的インテグレーション(CI)を利用することは当たり前になってきました。

myenigma.hatenablog.com

myenigma.hatenablog.com

 

CIを実現する上で、

オンプレミスでは、Jenkins

myenigma.hatenablog.com

クラウドで、OSがLinux, Mac OSの場合は、Travis-CIや

Travis CI - Test and Deploy Your Code with Confidence

Circle-CI、

Continuous Integration and Delivery - CircleCI

Windowsの場合は、AppVeyorがあります。

myenigma.hatenablog.com

 

最近は、ユニットテストを実行するだけでなく、

ユニットテストがカバーしているコードの割合を表示するのも

よく実施されます。

今回は、Coverallsというテストカバレッジ可視化サービスを使う方法をまとめておきます。

coveralls.io

 

Coverallsを使うと、下記の画像のように、

テストカバレッジの結果を

GitHubのREADMEなどに表示することができます。

f:id:meison_amsl:20181111205140p:plain

 

続きを読む

Graph based SLAMの概要とPythonサンプルコード

https://github.com/AtsushiSakai/PythonRobotics/raw/master/SLAM/GraphBasedSLAM/animation.gif

目次

  • 目次
  • はじめに
  • Graph based SLAM
  • Pythonサンプルコード
  • 参考資料
  • MyEnigma Supporters

はじめに

以前、SLAMの技術として、

EKF SLAMやFast SLAMなどを紹介しましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

これらのSLAMのアルゴリズムは、

オンラインSLAMと呼ばれるSLAMのアルゴリズムです。

このようなオンラインSLAMのアルゴリズムは、

地図の情報を使って、今の位置や姿勢を補正することができますが、

過去の位置や姿勢は補正することができません。

 

そこで今回は、過去の位置や姿勢も含めて補正することができる

Full SLAMと呼ばれるアルゴリズム群の中で、

有名なアルゴリズムであるGraph based SLAMの概要と

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

続きを読む

Ubuntu初期設定まとめ

目次

  • 目次
  • はじめに
  • Chromeのインストール
  • Fn keyを押さずにFn keyを使いたい (デフォルトをメディアボタンにしない)
  • トラックパットのスクロールの方向をMacと合わせる
  • フォルダを英語名にする
  • Caps LockをCtrlにする
  • Macのようにキーボードの"変換"キーを日本語入力、"無変換"を英語入力にする
  • File Exploreでファイルの種類や、変更時刻の行を設定する
  • GitHubにssh keyを設定する
  • ターミナル系の設定
  • クリップボード管理アプリのインストール
  • Launcherキーバインドの設定
  • スクリーンショットの設定
  • スクリーンレコーダーアプリのインストール
  • CPUやメモリの使用率をメニューバーに表示するアプリのインストール
  • vimの設定
  • ターミナルアプリterminatorのインストール
  • Logicoolの多ボタンマウスを設定する
  • Dockerのインストール
  • Pythonのインストール
  • juliaのインストール
  • Jetbrains Toolboxのインストール
  • その他のOSの設定
  • 参考資料
  • MyEnigma Supporters

はじめに

個人的なUbuntu設定メモです。

続きを読む

スタンフォード大学の学生が学ぶ制約付き非線形最小二乗法とその応用

目次

  • 目次
  • はじめに
  • 制約付き非線形最小二乗法
  • 制約付き非線形最小二乗法の解法1: ペナルティ法
  • 制約付き非線形最小二乗法の解法2: 拡張ラグランジュ法
  • 制約付き非線形最小二乗法の応用例1: 自動車の非線形制御
  • 制約付き非線形最小二乗法の応用例2: 後処理軌跡推定
  • 参考資料
  • MyEnigma Supporters

はじめに

スタンフォード大学には

機械学習を学ぶ上での第一歩として、

Introduction to Matrix Methods (EE103)という授業があります。

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

読んだ際の技術メモです。

 

この教科書は下記のリンクのページから

pdfをダウンロードすることができます。

 

本記事では、

上記の教科書の非線形最小二乗法の部分のみのメモです。

他の部分に関しては、下記の記事を参照下さい。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

続きを読む

Windows OS上で自動ビルド&テストを実行できるクラウドCIサービスAppVeyor入門

目次

  • 目次
  • はじめに
  • クラウドのWindows OS上のCIサービス: AppVeyor
  • AppVeyorの設定でハマったところ
    • 1. "The build phase is set to "MSBuild" mode (default), but no Visual Studio project or solution files were found"というエラー
    • 2. WarningでCIが失敗してしまう。
    • 3. JuliaでCIの設定をしたいときは
  • 参考資料
  • MyEnigma Supporters

はじめに

近年、プログラミングをする上で、

テストを書き、そのテストを継続的に実行する

継続的インテグレーション(CI)を利用することは当たり前になってきました。

 

CIを実現する上で、

オンプレミスでは、Jenkins

myenigma.hatenablog.com

クラウドで、OSがLinux, Mac OSの場合は、Travis-CIや

Travis CI - Test and Deploy Your Code with Confidence

Circle-CIがあります。

Continuous Integration and Delivery - CircleCI

 

今回は、クラウド上でWindows OS上のCIサービスである

AppVeyorを紹介したいと思います。

 

最近、自分のOSSプロジェクトでも

Travis-ciに加えて、AppVeyorでのCIも追加しました。

github.com

 

今回はAppVeyorの概要と、自分がハマったところを紹介しておきます。

続きを読む

スタンフォード大学の学生が学ぶ非線形最小二乗法とその応用2:レーベンバーグ・マーカート法編

目次

  • 目次
  • はじめに
  • 非線形最小二乗法の解法2: レーベンバーグ・マーカート法
    • レーベンバーグ・マーカート法の概要
    • Juliaによるレーベンバーグ・マーカート法による非線形最小二乗法
  • 応用例1: 非線形最小二乗法による等距離地点探索
  • 応用例2: 非線形フィッティング
  • GitHubリポジトリ
  • 参考資料
  • MyEnigma Supporters

 

はじめに

スタンフォード大学には

機械学習を学ぶ上での第一歩として、

Introduction to Matrix Methods (EE103)という授業があります。

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

読んだ際の技術メモです。

 

この教科書は下記のリンクのページから

pdfをダウンロードすることができます。

 

本記事では、

上記の教科書の非線形最小二乗法の部分のみのメモです。

他の部分に関しては、下記の記事を参照下さい。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む