EurekaMoments

新米エンジニアが一人前を目指す修行の日々を記していくブログです。

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のメモです。

はじめてのVisual Studio Code (I・O BOOKS)

はじめてのVisual Studio Code (I・O BOOKS)

続きを読む

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

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

背景・目的

機械学習、深層学習を学ぶ上で、数学の知識は絶対に必要だと思います。自分も最近になって機械学習、深層学習について本格的に勉強を開始しましたが、まず最初に感じたのは数学の基本をいろいろと忘れているな、という事です。そんな時に以下の良い技術書を見つけたので、これを利用して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を使うようになったのですが、良く使う基本的なコマンドすら中々覚えられないので、いつでも見返せるように逆引きメモとして残しておこうと思います。

参考文献

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

続きを読む

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

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

背景・目的

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

eurekamoments.hatenablog.com

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

続きを読む

東大生マラソンランナーに習って卓球とプログラミングの両立方法を考えてみた

  • 背景
  • 目的
  • 一般の卓球プレーヤーが抱える制約
  • 先行技術
  • 今後の取り組み①: 試合動画内の選手のトラッキングと打法の自動分析
  • 今後の取り組み②: 選手の動作情報から試合の流れを把握し、自分がとるべき戦術を提案してくれるシステムの開発
  • 参考: テニスにおけるデータ分析

背景

自分は中学校入学時から卓球を始め、今でも趣味として週1くらいのペースで楽しんでいます。地元のクラブチームにも所属してたまに試合にも出場しているので、できればもう少し練習する機会を増やして実力アップを図りたいのですが、プログラマとしての勉強時間も確保したいのでこれ以上練習時間を増やすのは難しいのが現状です。
どうしたものかと悩んでいたところ、以下の記事を読んだことで「そういう考え方があったか」と非常にスッキリしました。
president.jp

ラソン東京オリンピックを目指す程のアスリートでありながら、東京大学大学院の博士課程で研究にも取り組む近藤秀一選手の考え方は、スポーツと学業との間に壁を作らない「文武一道」というものです。好きなものが2つあるなら、それらをどうやって結び付けられるのかを考える事が大事だという近藤選手の言葉を聞いて、自分も卓球とプログラミングを結びつけて同時に取り組んでいける方法を考えてみる事にしました。

続きを読む