MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

スタンフォード大学の学生が学ぶ最小二乗法入門

 

目次

  • 目次
  • はじめに
  • 最小二乗法
  • Juliaにおける最小二乗法の解き方
  • 最小二乗法の応用例1: 広告の投資最適化
  • 最小二乗法の応用例2:ライトの光量の制御
  • 多目的関数における最小二乗法
    • Tikhonovの正規化による最小二乗法
    • 多目的関数最小二乗法による時系列データフィッテング
    • 画像のボケ除去
    • CTスキャンの断面復元
    • 多目関数によるオーバーフィッティング防止
  • GItHubリポジトリ
  • 参考資料
  • MyEnigma Supporters

 

はじめに

スタンフォード大学には

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

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

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

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

 

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

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

 

本記事では、

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

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

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む

各プログラミング言語におけるシンプルなJSONサーバ・JSONクライアントの作り方

目次

  • 目次
  • はじめに
  • Python
    • Server
    • Client
  • Julia
    • Server
    • Client
  • C++
    • Client
    • Server
  • curl
    • Client
  • 参考資料
  • MyEnigma Supporters

はじめに

最近、様々な言語で作られたツールを連携するのに、

JSONファイルを使っているのですが、

myenigma.hatenablog.com

今回は、

そのJSONファイルを様々なプログラミング言語でやり取りするための

シンプルなJSONサーバ・JSONクライアントのコードを紹介したいと思います。

 

今回のサンプルコードでは、

基本的にクライアントがJSONファイルをHTTP経由で送信し、

そのサーバがそのJSONファイルを元に、

JSONファイルを返信するという用途でサンプルコードを作成します。

 

紹介するコードはすべて下記のリポジトリで公開しています。

github.com

順次、対応言語も増やしていく予定です。

 

続きを読む

個人の書斎を作るために揃えたもの

はじめての書斎😀

目次

  • 目次
  • はじめに
  • 椅子
  • ディスプレイ
  • コンピュータ
  • キーボード
  • マウス
  • 参考資料
  • MyEnigma Supporters

はじめに

新しい家に引っ越して、

小さな書斎的なものをお安く作ったので、

その時に揃えたものをまとめておきます。

続きを読む

かっこいいグラフを作るPythonモジュールPyCoolPlotを作った

目次

  • 目次
  • はじめに
  • PyCoolPlot
  • 必要なもの
  • ダウンロードの仕方
  • 使い方
    • Horizontal bar plot
    • Line graph
    • Time bar chart
  • 参考資料
  • MyEnigma Supporters

はじめに

いつもグラフを書く時にデザインに迷うのですが、

下記の記事を見て、すぐにmaplotlibで実装したくなりました。

note.mu

しかし、

もたもたしているうちに先を越されてしまったのですが、

もう少し簡単に上記のデザインルールに従ったグラフを書きたいと思い、

OSSとしてPythonモジュールPyCoolPlotを作りました。

github.com

今回はこちらを紹介したいと思います。

続きを読む

Python製のマルチプラットフォームJSONファイルビューワーPyJSONViewerを作った

https://github.com/AtsushiSakai/PyJSONViewer/blob/master/img/mac.png?raw=true

目次

  • 目次
  • はじめに
  • PyJSONViewer
  • ダウンロード
  • 使い方
    • CUIでJSONファイルを指定する
    • GUIでJSONファイルを指定する。
  • おすすめ設定
    • bashのエイリアスを設定する
    • VimからPyJSONViewerを開く設定
  • 参考資料
  • MyEnigma Supporters

はじめに

最近、

複雑なシミュレーションのログデータや、

複数のプログラミング言語を使ったシステムの

データの受け渡し方法としてJSONファイルを使っています。

 

JSONはTree状のデータ構造を構築することができるので、

シミュレーションの設定データから、

シミュレーションの結果などを

まとめて一つのファイルとしてまとめることができるので、

非常に便利です。

 

また、ほとんどの言語でJSONのパーサは

デフォルトAPIやライブラリとして、

提供されているので、各言語でいちいちファイルデータ解釈用の

パーサを書かなくていいのは非常に便利です。

myenigma.hatenablog.com

 

しかし、一つ不満だったのが、

JSONファイルの中身を少し確認したい時の

ビューワーがあまり良いものが見つかりませんでした。

 

はじめは下記のChrome extensionのJSON viewerを使っていたのですが、

chrome.google.com

大きいjsonファイルを読み込もうとすると、

すぐにフリーズしてしまいました。

 

下記のJ and Eというフリーソフトは、

大きなJSONファイルもツリー状に可視化でき、

非常に軽快に動作するのですが、

残念ながらWindowsのみで利用可能で、

MacやLinuxも併用する自分には、

完璧ではありませんでした。

 

その他にも、良さそうなJSONビューワーソフトはありましたが、

ほとんどは有償ソフトウェアでした。

 

そこで、今回、

Python製のマルチプラットフォームJSONファイルビューワーである

PyJSONViewerをOSSとして自作し、GitHubに公開したので、

紹介したいと思います。

github.com

 

続きを読む

ソフトバンク光でインターネットを高速にしたい時に気をつけるべきこと

目次

  • 目次
  • はじめに
  • オプションの光BBユニットは解約せずにそのまま使う。
  • ルータを最新のものにする。
  • キャンペーンを見逃さない
  • 利用開始から5ヶ月後の感想
  • 参考資料
  • MyEnigma Supporters

はじめに

今回、

新しくインターネットの回線を

ソフトバンク光にしたのですが、

色々と苦労した結果、

なんとか、夜でも下り300Mbps, 上り150Mbpsの

満足いくインターネット環境を構築することが出来ました。

その時に気をつけたことをメモしておきます。

 

続きを読む

Juliaで競技プログラミングやるときによく書くコードをまとめてみた

目次

  • 目次
  • はじめに
  • 1. 基本的な入出力
  • 2. 数値への変換
  • 3. 空白で分割
  • 4. 空白で分割しつつ数値に変換
  • 5. 特定の条件のデータを数える
  • 6. 複数行をまとめて読み込む
  • 7. 二重のリストの行列を入れ替える
  • 8. 二重のリストをフラットにする
  • 9. 連結と繰り返し
  • 10. 要素の存在確認
  • 11. 削除
  • 12. ソート
  • 13. マイナス値のインデックス
  • 14. 部分リストの取り出し(スライス)
  • 15. シャローコピーとディープコピー
  • 16. 和集合と積集合
  • 17. 文字列における、連結と繰り返し、存在確認
  • 18. 文字列の置換
  • 19. 文字列の反転
  • 20. 文字列定数
  • 21. 正規表現
  • 22. 累積和
  • 23. dropwhileとtakewhile
  • 24. groupby
  • 25. for文のelse
  • 26. 2進数や16進数
  • 27. 順列数と組み合わせ数
  • 28. メモ化
  • 29. stdinをファイルに置き換える
  • 参考資料
  • MyEnigma Supporters

はじめに

下記の記事が非常に勉強になったので、

Juliaで同じことを実現する方法を調べてみました。

https://qiita.com/y-tsutsu/items/aa7e8e809d6ac167d6a1qiita.com

(競技プロはやったことないのですが。。。)

すべてのコードは下記のリポジトリでも公開しています。

github.com

 

続きを読む

スタンフォード大学の学生が学ぶ行列入門

目次

  • 目次
  • はじめに
  • 行列
    • 行列の基礎
    • 行列データの例
    • 疎行列
    • 転置
    • 行列ノルム
    • 行列の掛け算
  • 行列演算の応用例
    • 幾何学的変換
    • 畳み込み
  • 線形変換
  • 線形動的モデル
  • 行列の掛け算
  • 逆行列
  • 線形方程式の解法
  • なぜ線形方程式を解くのに、逆行列を使ってはいけないのか?
  • Pseudo inverse 疑似逆行列
  • 参考資料
  • MyEnigma Supporters

 

はじめに

スタンフォード大学には

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

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

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

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

 

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

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

 

本記事では、

上記の教科書の行列の部分のみのメモです。

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

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む

Windows初期設定まとめ

目次

  • 目次
  • はじめに
  • Chromeのインストール
  • シェル環境設定
    • cmderインストール
    • dotfile設定
  • キーボードの設定
    • 無変換、変換キーをMacと同じ挙動にする
    • CtrlとCapsLockを入れ替える
  • マウスの設定
  • 参考資料
  • MyEnigma Supporters

はじめに

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

続きを読む

Probabilistic Road Map(PRM) plannerによる経路生成とPythonサンプルコード

PRM

目次

  • 目次
  • はじめに
  • PRM planner
    • 1. Configuration Space (C-Space)の作成
    • 2. C-Space内にランダムにサンプリングする
    • 3. 隣接点を接続する
    • 4. ダイクストラ法による最短距離探索
  • Pythonサンプルコード
  • 参考資料
  • MyEnigma Supporters

はじめに

今回の記事では、

ロボットのパスプランニングの代表的なアルゴリズムの一つである。

Probabilistic Road Map (PRM) plannerについて概要と、

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

 

続きを読む