EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

機械学習に必要な数学の基本についての勉強メモ: 行列編

目次

  • 目次
  • はじめに
  • 行列とは
  • Pythonにおける行列の定義
  • 行列の積
  • 単位行列
  • 逆行列
  • 3×3行列の逆行列を求める
  • 転置
  • 行列と写像
  • 次回の内容

はじめに

以前、機械学習に必要な数学について学んでいくにあたり、下記の記事を書きました。

www.eureka-moments-blog.com

今回はその続きとして、行列についての基本を勉強したので、そのメモを記事にします。

続きを読む

Visual Studio Codeによるソフトウェア開発環境構築のメモ

目次

  • 目次
  • はじめ
  • VS Codeのインストール
  • Gitのインストール
  • Gitの初期設定
  • VS Code上で開く統合ターミナルをGit bashにする
  • VS Codeの拡張機能を自動でインストールする
  • 事前準備1. インストールしたい拡張機能のリストファイルを作る
  • 事前準備2. 自動インストールを実行するシェルスクリプトを書く
  • ユーザ設定を共有できるようにする
  • 番外: 便利だけどよく忘れるVS Codeのコマンドメモ
  • 表示しているファイル内のシンボルの一覧を表示する
  • シンボル名で検索する
  • 元いた場所に戻る

はじめ

自宅のPCでも職場のPCでも、ソフトウェア開発環境としてVisual Studio Code(以下VS Code)を導入しているのですが、どちらも同じ設定で統一したかったり、何かのタイミングでPC交換となり環境構築をし直したくなった際は、出来るだけ効率的に作業を完了させたくなります。
今回の記事は、VS Codeの環境構築の作業手順とTipsのメモです。

続きを読む

機械学習に必要な数学の基本についての勉強メモ: ベクトルと微分編

目次

  • 目次
  • はじめに
  • Pythonで縦ベクトルを表す
  • ベクトルの足し算、引き算の図形的な解釈
  • ベクトルの内積
  • Pythonでのベクトルの大きさの計算
  • ベクトルの内積を和の記号を使って表す
  • 積の記号
  • 機械学習における微分の在り方
  • 入れ子の関数の微分
  • 機械学習における偏微分の在り方
  • 傾きをベクトルとして解釈する
  • 勾配を図で表す
  • 多変数の入れ子関数の微分
  • 和と微分の交換

はじめに

機械学習、深層学習を学ぶ上で、数学の知識は絶対に必要だと思います。自分も最近になって機械学習、深層学習について本格的に勉強を開始しましたが、まず最初に感じたのは数学の基本をいろいろと忘れているな、という事です。そんな時に上記の技術書を見つけたので、これを利用してPythonでのプログラミングを交えながら数学の基本について学び直し、その中から重要だと思った部分やサンプルコードをこの記事にメモしていこうと思います。

続きを読む

Google翻訳のAPIで4ヶ国語対応の翻訳アプリを作ってみた

  • 背景・目的
  • 全体ソースコード
  • Google翻訳APIのインストール
  • APIをインストールする際の注意点
  • 必要なモジュールのインポート
  • 文字化けするときの対処法
  • 翻訳させたいフレーズの入力
  • 翻訳処理
  • 実行結果の例
  • 次の取り組み

背景・目的

プログラミングもしながら語学も学ぶ方法はないかと考えた結果、最初に思いついたのは翻訳アプリを自作してみる事でした。といっても翻訳自体はGoogle翻訳のAPIを利用しているので結構簡単にできました。ただ、作る中でいくつかハマった事があったので、その辺の対処方法にも触れながら今回作った翻訳アプリを紹介しようと思います。

AI時代の翻訳に役立つGoogle活用テクニック

AI時代の翻訳に役立つGoogle活用テクニック

続きを読む

聴講メモ: MIT Self-Driving Cars: Sacha Arnoud, Director of Engineering, Waymo

  • 背景・目的
  • Waymoについて
  • 講演の動画
  • 講演内容のメモ
  • 良く分からなかった部分の参考資料

背景・目的

アメリカの自動運転車開発企業であるWaymoのエンジニアリングディレクタであるSacha Arnoudが、MIT(マサチューセッツ工科大学)にて講演を行ったようです。その模様がYouTubeで公開されているのですが、なかなか聴く機会もない貴重な講演なので、動画を見て聴いた内容をTwitterでメモしました。
今回の記事では、そのメモ内容を紹介しようと思います。

Waymoについて

Waymoについては以下のサイトを参照ください。

waymo.com

ウェイモ - Wikipedia

続きを読む

良く使うGitコマンドの逆引きメモ

目次

  • 目次
  • はじめに
  • リモートリポジトリからクローンする
  • ブランチを作成する
  • 今いるブランチを*で示す
  • ブランチ一覧を確認する
  • 作業ブランチを切り替える(チェックアウト)
  • ブランチ作成 + チェックアウト
  • 既存ブランチと同じ名前のブランチを強制的に再生成 + チェックアウト
  • 全ての変更を破棄して強制的にチェックアウト
  • ブランチ名を変更する
  • ブランチを削除する
  • リモートリポジトリとURLの一覧を表示
  • リモートリポジトリを追加
  • リモートリポジトリを削除
  • 前回のコミットと比較した変更内容を表示
  • ワークスペース上の編集 or 追加ファイルをステージに上げる
  • ローカルリポジトリにコミットする
  • 直前のコミットに上書きする
  • コミットログを確認する
  • インデックスの変更内容を取り消す
  • git commitの実行を取り消す
  • 過去のコミット直後に強制的に戻す
  • ローカルへのコミットをリモートリポジトリにpushする
  • リモートリポジトリの変更をローカルに取り込む
  • リポジトリからファイルを削除 + ディレクトリから削除
  • リポジトリからファイルを削除 + ディレクトリには残す
  • ファイル名を変更する
  • タグを付ける
  • コンフリクトした時の解消手順
  • SVNリポジトリからローカルのGitリポジトリを作成する
  • ローカルGitリポジトリに変更を行い、SVNリポジトリへ反映する
  • Git Bashで新規ファイルを作成する
  • Gitのブランチモデル
  • OSSの本家のリポジトリの変更をForkした自分のリポジトリに取り込む
  • プルリクエストを使った開発フロー
  • プルリクエストをIssueにリンクする

はじめに

今更ながら、会社でも自宅でもソースコード管理をするのにGitを使うようになったのですが、良く使う基本的なコマンドすら中々覚えられないので、いつでも見返せるように逆引きメモとして残しておこうと思います。

続きを読む

データの正規化を考慮したワインの等級予測:Linear SVC編

目次

  • 目次
  • はじめに
  • 予測モデルの学習手法の選定:Linear SVC
  • とりあえずやってみる
  • データを正規化・標準化してみる
  • Z-Score Normalization(標準化)
  • Min-Max Normalization
  • データの分布形状を確認
  • 正規化・標準化したデータで再度Linear SVC
  • 次のステップ

はじめに

以前、カリフォルニア大学アーバイン校(UCI)が公開している「ワインの等級を予測するための学習データサンプル」を用いたデータ分析についての記事を書きました。

eurekamoments.hatenablog.com

今回はその続きとして、データの分析結果に基づいて実際に等級予測を行ってみたので、その結果を紹介しようと思います。
また今回は、単にデータを学習させるだけではなくて、機械学習において重要とされるデータの正規化・標準化も考慮しながら行ってみました。

続きを読む