$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

Coursera Machine Learning Week1を受けた & メモ

自分の中で裏側よりの難しいタスクをアサインされる機会を増やしたいと思い、機械学習の勉強を始めることにした。そこでとりあえず良いとよく言われているCoursera Machine Learningの講義を受けることにした。

https://www.coursera.org/learn/machine-learning

ひとまずWeek1を終わらせたので、受けたときにとったメモを置いておく。

Introduction

機械学習とはどのようなところに使われるかと、教師あり学習学習・教師なし学習について少し触れるような内容だった。

教師あり学習

  • ラベル付きデータを与えて学習するもの
  • 教師あり学習の中に、回帰問題と分類問題がある
    • 回帰問題 -> 連続値出力の予測
    • 分類問題 -> 離散値出力の予測
  • 例1: 家の値段を予測する -> 回帰問題
  • 例2: 乳がんを良性か悪性か判定する -> 分類問題

教師なし学習

  • 教師なし学習とは、ラベルを与えられていないデータ集合を、分類するもの(?)
    • Wikipediaによると、「データの背後に存在する本質的な構造を抽出するために用いられる」らしい
  • 例1: マーケティングのセグメントを自動的に分類する
  • 例2: 二つの音声(人とか環境音とか)を分離する -> カクテルパーティ問題

Model and Cost Function

線形回帰モデルをどのように構築するかについて紹介する内容だった。一つずつ単純化して説明してから複雑なものを考えるという形式をとって説明してくれるので非常に分かりやすかった。

線形回帰モデル

  • 線形回帰問題とは、訓練データで学習することで、予測するための関数hを得ることが目的となる
  • ひとまず{h_\theta(x) = \theta_0 + \theta_1 * x}というモデルを考える
  • hが1次関数であるものを線形回帰モデル、もしくは単回帰モデルと呼ぶ

Cost Function(目的関数)

  • Cost Functionを利用することで、h(x)を算出できる
  • Cost Functionは以下のように二乗誤差の平均と考える
    • {J(\theta_0, \theta_1) = \dfrac {1}{2m} \displaystyle \sum {i=1}^m \left ( \hat{y}{i}- y_{i} \right)^2 = \dfrac {1}{2m} \displaystyle \sum {i=1}^m \left (h\theta (x_{i}) - y_{i} \right)^2}
  • Cost Functionが最小になればデータセットに近い直線が得られ、関数hのための{\theta_0}{\theta_1}が分かる
  • 等高線のような図解が分かりやすかった

Parameter Learning

Gradient Descent(最急降下法)について習う。

  • 最急降下法は、関数の傾きを利用して最小に近づけていく方法
  • αという学習率というパラメータを用いて最小に近づけていく
  • 最急降下法では、初期値によって局所解というものにたどり着いてしまい、最適な解が得られないことがある
  • 線形回帰の問題であれば、局所解は存在せず、ただ一つ解が存在することになる

最急降下法アルゴリズム
{\begin{align*} \text{repeat until convergence: } \lbrace & \newline \theta_0 := & \theta_0 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}(h_\theta(x_{i}) - y_{i}) \newline \theta_1 := & \theta_1 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}\left((h_\theta(x_{i}) - y_{i}) x_{i}\right) \newline \rbrace& \end{align*}}

Linear Algebra Review

線形代数の基礎中の基礎として、行列演算について教えてもらえる。

  • 関数適用を行列とベクトルの掛け算として見るのが面白い
  • 複数の関数適用なら行列と行列の掛け算と見る

まとめ

Week1を受けての感想は、非常に分かりやすく解説されているということ。説明がうますぎて、一切前提知識がなくても理解することが出来た。

数学的な知識も今の段階では分かっていなくとも理解することが出来た。どこかで数学の知識がないことで詰まってしまったら、またその機会に学習したい。

専門用語も多いので英語だとかなり理解に苦しむが、日本語の字幕も用意されていたので特に問題はなかった。たまに日本語の字幕がずれていて一切わからないところがあったので、そこは諦めて気合で英語の字幕を見ると良い。

とりあえず受けてみたものの、どのくらいモチベーションを保って続けられるかわからない。とりあえずTensorFlowとかに触ってみるというのを先にやっても良いのかもと思った。

行動分析学の観点から課題を解決する - 「パフォーマンス・マネジメント」読んだ

 最近効率的な課題解決について興味があり、パフォーマンス・マネジメントという本を見かけたので読んでみた。

 この本は行動分析学という学問から個人や組織の課題解決にアプローチするという本。ストーリー形式で書かれており、そのストーリーで行動分析学という観点でどうやって問題を解決するかを教えてくれるため、あまり知識がなくとも理解がしやすい。ストーリー形式ではあるものの、きちんと理論的に説明しているので、信用もできる。

 とにかくひたすら面白かった。それぞれの理論が正に自分の行動の原因を言い当てられているようで、人間ってけっこう単純に動いているんだな...という感想を抱いた。久しぶりに面白い本に会えたなーと感じるし、面白すぎて読書ノートが異常な量になってしまった。

 この本は色んな人におすすめできる。自分でやりたいと思っていることをなかなか継続できない(例えば学習習慣をつける)とか、会社の課題解決をやっているつもりだけど手応えがないとか、部下のマネジメントがうまくいかないとか、そういう風に少しでも思っていたら読んでみると良いと思う。なぜ人がこのような行動を取るのかの根本的な理由などが分かるので、応用もしやすいと思う。

 以下のことが面白いと思ったので読書メモを残しておく。自分用メモレベルを超えていないのでわかりづらいとは思う。

  • 個人攻撃の罠
  • 行動随伴性と強化・弱化の原理で望ましい行動を起こりやすくする
  • 行動の強化や弱化の指針

個人攻撃の罠

仕事や人間関係がうまくいかないとき、我々はその原因を他人や自分の性格や能力、やる気や適性のせいにして、問題解決のためのアクションをとらないことが多い。これを個人攻撃の罠という。

 納得できる。

 実際に何か問題がある時、上司がもうちょいちゃんとしてほしいとか、この人とは合わないとか、そのような考えに至ってしまいがち。しかもそこで考えを放棄してしまい、その問題を解決に導こうとしないことがある。これが良くないと分かってはいても、なぜかやってしまう。

 このようなことはずっと意識していないとなってしまいがちなので、とにかく何か問題が起こった時、それを人と結び付けず、うまく問題として切り離し考えていけるようにしたいと思った。

行動随伴性と強化・弱化の原理で望ましい行動を起こりやすくする

 この本は、行動随伴性というものを分析し、その分析の結果を利用して、どのように望ましい行動を起こりやすくするかということを題材にしていると僕は理解した。このあたりの話は非常に面白かった。


 行動随伴性とは、先行条件と行動と結果の関係のこと。つまり、どういうときに(先行条件)、何をしたら(行動)、どうなるか(結果)という関係性である。この関係性を分析していくと、人間の望ましい行動を増やしたり、逆に望ましくない行動を減らしたりなどができる。


 行動随伴性に関連して、強化の原理・弱化の原理というものがある。

  • 強化の原理
    • 行動することで、何か良いことが起こったり、悪いことがなくなったりすると、その行動は繰り返される
    • 行動を強化する"何か良いこと"を好子という
  • 弱化の原理
    • 行動することで、何か悪いことが起こったり、良いことがなくなったりすると、その行動は繰り返されなくなる
    • 行動を弱化する"何か悪いこと"を嫌子という

 強化の原理・弱化の原理とはつまり、ある行動をしたときに、その人にとって何か良いと思えることが起これば起こるほどその行動はだんだん起こりやすくなるが、逆に何か悪いことが起こるとその行動がだんだん起こりにくくなるというもの。ノルマをうまく達成するとそのためにやった行動が起こりやすくなるとか、ある行動をして叱られるともうやりたくなくなるとかは、この原理が働いている。


 行動随伴性と強化・弱化の原理を合わせると望ましい行動を起こりやすくすることができると書かれている。

 例えばある人がいい感じのタイミングで相談してくれないという問題があったとする。この時、「いい感じのタイミングで相談する」という行動の結果として、その人が良いと感じることをうまく提供してあげることで、その問題の解決を行うことが出来たりする。

 逆にこれまで「いい感じのタイミングで相談する」と悪いことが起こったと感じていて、そのような行動を起こさなくなった可能性がある。その場合、その悪いことを取り除くことで問題解決できる可能性がある。


 他にも望ましい行動が行われない時にどうするかの指針が幾つか書かれていた。

  • 基本的には、行動の先行条件か、行動の結果のみ変えられる
  • 先行条件を工夫しても行動が変わらないとき、しかも期待されている行動はすでに行動レパートリーとして獲得されているなら、改善の余地は結果にあると見てよい 26
  • ただし、行動が確実に身についていない場合は、新しく身についてレパートリーになるようにトレーニングしなければならない
  • 解決が難しい問題は、たいてい望ましくない行動が強化されていたり、望ましい行動が弱化されているのが問題 73

行動の強化や弱化の指針

 さらに、行動の強化や弱化の指針についても書かれていた。これも参考になる。

  • 弱化することには人間関係に悪影響を及ぼすなど悪い作用もある。このためパフォーマンス・マネジメントには強化の原理を多用するのが望ましい 19
  • 一般に、行動と結果の間の時間差が短いほど、強化の原理は強く働く。弱化の原理もしかり。 36
  • 行動の結果によって行動が強化・弱化されるための条件 126
    • 1. 行動と結果の関係は明確に
    • 2. 結果は行動に対して確実に
    • 3. 結果の伝達は行動の直後に
  • 行動を見ずに、成果のみから望ましい行動が行われていないと判断し、嫌子を使うのは控えたほうが良い 130
  • 褒める時は、どの行動を褒めているか、はっきりと相手に伝わるようにする 132
    • 無条件に褒めると、望ましくない行動に好子が与えられてしまうかもしれない
    • つまり具体的に褒める

まとめ

 今回は「パフォーマンス・マネジメント」を読んで、そのメモを残しておいた。本当に面白かったし、150ページくらいですぐ読めるので、是非読んでみてもらえると良さそう。

 今回の本で行動分析学というものにも興味が出てきた。ファスト&スローという本も行動分析学に関係する本らしいので、また機会があったら読んでみたい。

読書メモの全て

面白すぎて大量の読書メモが出来た...

  • パフォーマンス・マネジメントとは、個人や企業、社会が抱える問題を行動分析学にもとづいて解決すること 4
  • 指針: 仕事や人間関係がうまくいかないときには、他人や自分を責めるのではなく、問題を解決する方法を考えよう 4
  • 個人攻撃の罠 4 ☆
    • 問題が起こると、その原因を他人や自分の正確や能力、やる気や適性のせいにし、問題解決のためのアクションを取らないことが多い
  • 強化の原理 7
    • 行動することで、何か良いことが起こったり、悪いことがなくなったりすると、その行動は繰り返される
    • 行動を強化する"何か良いこと"を好子という
  • 先行条件と行動と結果の関係を行動随伴性という 7 ☆
  • 誰にも行動そのものはいじれないので、工夫ができるのは先行条件(A)と結果(C)だけ 8 ☆
  • チェックリストで仕事がうまくいく原理は、期待されている仕事についての情報が明確な先行条件(A)として与えられたから 13
  • 行動(B)が確実に身についていない場合は、新しく身についてレパートリーになるようにトレーニングしなければならない 13
  • 弱化の原理 16
    • 行動することで、何か悪いことが起こったり、良いことがなくなったりすると、その行動は繰り返されなくなる 16
    • 行動を弱化する"何か悪いこと"を嫌子という
  • 復帰の原理 17
    • 行動は弱化されないと、元通りに起こりやすくなる
  • 消去の原理 17
    • 行動は強化されないと、元通りに起こりにくくなる
  • 弁別の原理 18
    • 行動は、強化の先行条件によって引き起こされ、弱化の先行条件によって抑えられるようになる
    • これが働くと、先行条件によって行動が起こりやすくなったり、起こりにくくなる
  • 弱化することには人間関係に悪影響を及ぼすなど悪い作用もある。このためパフォーマンス・マネジメントには強化の原理を多用するのが望ましい 19 ☆
  • やらなくてはならないことが分かってもできるかどうか分からない 26
    • 何を、いつ、どのようにしなくてはならないかを知っていても、行動が行われないことがある
  • 先行条件(A)を工夫しても行動が変わらないとき、しかも期待されている行動はすでに行動レパートリー(B)として獲得されているなら、改善の余地は結果(C)にあると見てよい 26 ☆
  • すべての行動の原理は「〜する」という行動にあてはまる。「〜しない」という行動にはあてはまらない 27 ☆
  • 嫌子を使ったマネジメントをすると、その場所、時間などが、派生の原理によって嫌子化してしまう 28 ☆
  • 派生の原理 28
    • 好子や嫌子が現れると、そのとき、そこにいた人やそこにあった物、状況などが、好子化したり、嫌子化したりする
  • 達成目標と行動目標 33
    • 達成目標とは、最終的に何を達成したいかという目標
    • 行動目標は、達成目標のためにすべき、あるいはすべきでない行動に対する目標
    • はてなにおける目標とアクションプラン、もしくはゴールと目標のイメージ
  • 自分の行動の管理が問題になったら、まずはその行動について現状の行動随伴性ABC分析してみよう 35
  • 一般に、行動(B)と結果(C)の間の時間差が短いほど、強化の原理は強く働く。弱化の原理もしかり。 36
  • 行動は、遺伝と歴史と現状の三つの条件に影響される 44
  • 過去の行動随伴性は以下を決定する 44
    • どういう先行条件でどういう行動が起こりやすいか
    • どういう行動がどういう結果によって強化されたり弱化されたりするか
  • 行動するたびに強化されることを連続強化、たまにしか強化されないことを部分強化という 44
  • 連続強化されていた行動よりも、部分強化されていた行動のほうが消去されにくいということが分かっている 44
  • 部分強化の原理 45
    • いつも強化される行動よりも、たまにしか強化されない行動の方が消去されにくい
  • 反発の原理 45
    • 嫌子が出現したり、急に行動が消去されると、反発したり、相手を攻撃する行動が起こりやすくなる
  • 誰かが自分の行動をコントロールしようとすることも、たいていの場合、嫌子として働く 46
  • 行動にはオペラントという種類とレスポンデントという種類がある 53
    • オペラントとは生物が環境に働きかけ、環境が生物に働きかける、いわば生物と環境との接点にあたる行動
      • 例) 書類の処理、恋人をデートに誘う
    • レスポンデントは、そもそも遺伝的に備わっている反射が、派生の原理によって、新しい刺激によっても引き起こされるようになった行動
  • 生得的に反射を引き起こす刺激を反射子、生得的には反射を引き起こさない行動を中性子と呼ぶ 53
  • 反射子と共に中性子を何度も与えると、中性子が反射子になる(条件反射) ☆
  • レスポンデントの行動は先行条件(A)と行動(B)しかないので、AB分析を使う 54
  • ある状況を苦手の人というのは、ある苦痛な体験によって、その状況が中性子から反射子に変化したとかんがえられる 54
  • 辛いことを忘れたかったら、辛さを思い出させるような刺激や状況を、できるだけ辛さを感じないようにして見たり、聞いたり、考えたりしたほうが良い 56
    • 反射子となってしまった状況を、中性子に戻す
  • 問題が先行条件(A)や結果(C)ではなく行動(B)にある場合、行動が行動レパートリーとして習得されていないことが原因である 61
    • すなわち、何をすべきか分かっていて「やる気も」あるのに、実行できない場合
  • シェイピング: 言葉では説明しにくい行動を教えたり、や言葉が理解できない相手に新しい行動を教えたりするのに利用 62
  • 分化の原理 63
    • 強化される行動は、強化されない行動に比べて増えていく。弱化される行動は弱化されない行動に比べて減っていく
  • モデリング: 見本や手本を示すこと 64
  • プロンプトとフェイディング 65
    • プロンプト: 標的行動が起こりやすいように合図や指示、ヒントをだすこと
    • フェイディング: 標的行動が身に付くにつれてプロンプトを次第に出さなくすること
  • 解決が難しい問題は、たいてい望ましくない行動が強化されていたり、望ましい行動が弱化されているのが問題 73
  • この本でパフォーマンスと言っているのは行動の成果 90
    • 行動: ワープロで書式を指定する -> 成果: 正しい書籍の書類 とか
  • 成果を最大化しようとするときに、原因が行動にあると、最初から決めつけないこと 91
    • つまりなんでもかんでもこの本に書いてあるとおり行動の改善をすれば良いというわけではないということ
    • パフォーマンスが出ないので他の人に頼むみたいな解決策もあるはず
  • パフォーマンスの問題を行動の改善によって解決する場合、標的行動としてパフォーマンスの向上につながる行動を選ばなければならない 92 ☆
  • 組織がパフォーマンスの向上につながらない行動に価値をおく危険を「行動の罠」と呼ぶ 92 ☆
    • 残業時間の多いことを良いこととするとか、正にそれ
  • 企業におけるマネジメントで重要なことは、派生の原理をうまく使って、仕事に関連した刺激や条件が好子になるような環境を作ること 95 ☆
  • パフォーマンス・マネジメントでは「知識」も「行動」と考える 100
    • 一般に「知識」といわれているものは、「行動」として発揮されて初めて観測されるため
  • 知識をパフォーマンス・マネジメントするときに大事なこと 102
    • 「知識」を行動レパートリーとして具体的に定義すること(標的行動の定義)
    • 学習者が行動レパートリーを習得できるように行動随伴性を整備すること
  • 行動随伴性とは、どういうときに、何をしたら、どうなるか 108
  • 行動の結果によって行動が強化・弱化されるための条件 126 ☆
    • 1. 行動と結果の関係は明確に
    • 2. 結果は行動に対して確実に
      • 結果が非常に低い確率でしか起こらないなら行動を強化・弱化しない
    • 3. 結果の伝達は行動の直後に
      • 結果が1年後とかに伝わっても行動を強化・弱化しない
  • 行動(B)を見ずに、成果のみから望ましい行動が行われていないと判断し、嫌子を使うのは控えたほうが良い 130
    • 正しい行動はしているが成果が出ていないだけかもしれない
    • その時に嫌子を使うと、正しい行動が弱化される
    • さらに派生の原理で、上司や会社が嫌子化する
  • 褒める時は、どの行動を褒めているか、はっきりと相手に伝わるようにする 132
    • 無条件に褒めると、望ましくない行動に好子が与えられてしまうかもしれない
    • つまり具体的に褒める
  • 目標設定と目標達成のための行動の指針 144 ☆
    • 本当はセルフマネジメントの指針だけどいろんなことに有用そう
    • 1. 目標はできるだけ具体的に、できれば数字を使って表す
    • 2. 大きな目標は達成できる小さな目標に切り分ける
    • 3. 目標に〆切をつける
    • 4. 望ましい行動を標的行動にする
      • 望ましくない行動を減らしたいなら、そのかわりに増やしたい行動を目標に設定する
    • 5. 達成度を知るために記録をとる
      • 現在どれくらい目標を達成しているか、状況を正確に知ることが大切

「WEB小説ヒットの方程式」読んだ

小説家が何を考えて小説を書いているか気になったので読んだ。

この本で面白いなと思ったのは、小説を前から順に書かないことがあるという話。僕がイメージしていたのは、小説は最初から少しずつ書いていくものだと思っていたけど、実はそういうわけでもないらしい。

例えば小択出新都さんによると

  • 書きたいシーンが最初にいくつかある
  • ストーリーはそれらをつなげるための一つのアイテムとして捉え、道筋をつける
  • ある程度道筋が出来たら頭から順に書くが、筆が進まなければ書きたいシーンから書く

という流れで書いていくらしい。面白い。


話は変わるけど、サービスの企画をする時もまず体験してほしいことは何かから始めて、その前後関係を膨らませていくという話を以前に聞いたことがある。小説の書き方もこれと似た感じで、まず書きたいシーンがあってそれの前後関係を考えていくんだなーと思って、興味深かった。