EurekaMoments

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

機械学習におけるラベル付けについての勉強メモ

目次

  • 目次
  • 目的
  • 参考文献
  • 1. ラベル付けとはなんのためにするのか
  • 2. どんなラベルを用意するべきか
  • 3. 「その他」ラベルが存在している場合の対処法
  • 4. どれくらいのラベル数を用意するべきか
  • 5. ラベル付けは何人で行うべきか?
  • 6. どのように2人で作業するのか?
  • 7. ラベルが不一致だった場合の対処法を決めておく
  • 8. ラベル付け作業をどうやって評価するのか

目的

機械学習について基礎的な部分を勉強し始めたのですが、まずは「教師あり学習」で必要不可欠になる「ラベル付け」という作業について勉強したので、そのメモを書きます。

参考文献

今回は以下の資料がとても分かりやすくまとめられていたので、その中でポイントになる部分をピックアップしてみました。

www.slideshare.net

続きを読む

読書メモ ~エンジニアリング組織論への招待~

目次

  • 目次
  • 目的
  • 読んだ感想
  • 思考のリファクタリング
  • メンタリングの技術
  • アジャイルなチームの原理
  • 学習するチームと不確実性マネージメント
  • 技術組織の力学とアーキテクチャ

目的

ここ最近の自分のソフトウェア開発業務は、開発の納期に追われつつも、目標とする性能をなかなか達成できなくてかなり苦労していました。自分は管理職ではなくただの一般社員ですが、それでもソフトウェア開発を行うチームとして業務改善を行える余地がたくさんあるんじゃないかと思い続けていました。
何か解決策はないかと調べていたところ、とても参考になりそうな書籍を見つけたので、今回はそれを読んで参考になったポイントを書き留めておこうと思います。

続きを読む

Kaggleで上位10%に入るデータサイエンティストから学ぶデータ分析のプロセスについて

目次

  • 目次
  • 目的
  • 参考記事
  • Kaggleとは?
  • 扱われたお題
  • プロセス①: データの中身を確認する
  • プロセス②: データの相関を調べる
  • プロセス③: 欠損したデータを補完する
  • プロセス④: モデリング前の事前処理
  • プロセス⑤: 解析とモデリング
  • 最終的な結果

目的

世の中の凄腕データサイエンティスト達はどのようにしてデータ分析をしているのか調べていたところ、Kaggleのコンペに参戦して上位に食い込んでいる人の技術記事を見つけました。最終的にモデルを作って予測をするところまでの過程が分かりやすくまとまっているので、とても参考になりました。
今回の記事は、上記の記事を読んで学んだデータ分析のプロセスについてのメモです。

参考記事

www.mirandora.com

www.mirandora.com

www.mirandora.com

続きを読む

プログラマーとして習慣づけるべきこと

目次

  • 目次
  • 目的
  • 参考記事
  • エラーが出ても慌てず、メッセージを読もう
  • ネット情報を鵜呑みにしない
  • 公式ドキュメントから読もう
  • 当てずっぽうで試していかない
  • 未知のものは、まっさらな環境で試そう
  • ライブラリを見つける力と目利きを鍛えよう
  • 大雑把に理解できる力を身に着けよう
  • 一度に大きく作ろうとせず、小さく進めよう
  • コミットする前には、動作確認しよう
  • 最初にTODOリストを作ってから始めよう
  • 頭から順に書き始めずに、構造化しよう
  • 頭で理解しきれないなら、絵にしてみよう
  • メンテナンスの前に、コードを読み込もう

目的

株式会社ソニックガーデンの代表である倉貫義人さんのブログで、「プログラミングの初心者を抜け出すための習慣」という記事を読みました。自分は流石に初心者ではないですが、かと言って上級者ですとも自信をもっては言えません。
今回読んだ記事に書いてあることは一見当たり前の事ですが、精神的に余裕が無かったりするとついつい疎かにしてしまうものばかりだったので、今後も意識していけるように、記事の概要及び読んだ感想をメモしておこうと思います。

参考記事

記事の原文は以下のリンクよりご覧になれます。
kuranuki.sonicgarden.jp

続きを読む

プログラミングにおけるネーミングについての勉強メモ

目次

  • 目次
  • 目的
  • 参考記事
  • 抽象度
  • 抽象度とクラス名
  • タスクを小さく分割する
  • 名前は時間を掛けてしっかり考える

目的

大規模なシステムを動かすプログラムを開発していると、クラスやメソッド、変数の名前を既存のものと区別できるように考えるのですが、ネタ切れになってくるとテキトーになってしまったり、以前にもあったようなネーミングをしてしまった紛らわしくしてしまったりします。 そこでプログラミング時のネーミングについてコツなどはないか調べていたところ、以下の記事がとても参考になったので、これを読んで学んだ事を自分が開発するソフトウェアと照らし合わせながらメモしておくことにします。

参考記事

frasco.io

続きを読む

オブジェクト指向プログラミングについて学んだ事のメモ

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

  • 作者:平澤 章
  • 発売日: 2014/03/05
  • メディア: Kindle版

目次

  • 目次
  • 背景・目的
  • 参考文献
  • オブジェクト指向のイメージ
  • 大変な作業を無くせる
  • バグをなるべく混入させないための基礎
  • クラス中のメソッド数を少なくする
  • メソッド中のステップ数を少なくする
  • クラス中の行数を小さくする
  • ネストを小さくする
  • 変数をむやみやたらに作らない
  • ライブラリ、コンポーネントを使う
  • メモリ使用量とループ回数を考える
  • IOアクセスは最小限にとどめる
  • 同じことを書かない
  • なるべくテスト可能なコードを書く
  • 送り出すデータは厳密に、受け取るデータは寛容に
  • シンプルなインターフェース
  • 複雑な内部状態を定義しない
  • コメントをなるべく書かない
  • コメントアウトしない
  • 良い名前を付ける

背景・目的

良いプログラムを作るには「オブジェクト指向設計をする」とよく言われていますが、正直なところ具体的にどういう書き方をするのがオブジェクト指向なのか、といのがよくわかっていませんでした。
そこで改めて調べていたところ、以下の記事が大変参考になったので、それらを読んで学んだ事をメモしておきたいと思います。

参考文献

オブジェクト指向という概念について分かりやすく説明してくれています。

eng-entrance.com

ソフトウェア開発において、オブジェクト指向設計をするとどういうコードになるのか、というのをまとめてくれています。

プログラミング中級者に読んでほしい良いコードを書くための20箇条 | anopara

プログラミング中級者に読んでほしい20個の心得の補足 | anopara

続きを読む

論文 Autonomous Driving in Urban Environmentsを読んだメモ(更新中)

目次

  • 目次
  • 背景・目的
  • 大学と研究室について
  • 1. Introduction
  • 2. Boss
  • 3. Motion Planning
    • 3-1. Trajectory Generation
    • 3-2. On-Road Navigation
    • 3.3 Zone Navigation
  • 4. Perception
    • 4.1 Moving Obstacle Detection and Tracking
    • 4.2 Static Obstacle Detection and Mapping
    • 4.3 Roadmap Localization
  • 5. Mission Planning
    • 5.1 Detecting Blockage
    • 5.2 Blockages
  • 6. Behavioral Reasoning<=今ここ
  • 勉強すべき技術
  • 分からなかった英単語メモ

背景・目的

自動運転におけるブレーキ制御やACCに関する論文を調べていたら、アメリカ屈指の名門私立研究大学であるカーネギーメロン大学の研究室が開発した無人ロボット車「Boss」の技術論文が公開されているのをネットで見つけました。自動運転分野では超有名ですが、今までしっかりと論文を読もうとしていなかったので、これを機会に精読してメモを残そうと思います。論文の原本のPDFはこちら↓

http://file:///C:/Users/shisa/Works/Papers/Collision%20Detection/Urmson_et_al-2008-Journal_of_Field_Robotics.pdf

大学と研究室について

この論文を出したカーネギーメロン大学と、その研究室である「General Motors - Carnegie Mellon Autonomous Driving Collaborative Research Lab」については、以下のリンクをご覧ください。

カーネギーメロン大学 - Wikipedia

www.ri.cmu.edu

続きを読む