Hataraita.net

馬鹿なこととITと馬鹿なことと競馬と変な資格が好きです。でも馬鹿なことはもっと好きです。

Tensorflow1.0~1.1でSeq2Seqチュートリアル(RNNCell)を使う上での注意点

f:id:bananawoma:20170111122413j:plain

TF1.xでのSeq2Seqチュートリアルの挙動

最近tensorflow1.0でSeq2seqチュートリアルをカスタマイズする機会があったのですが、なかなかハマったので忘備的に記録を残しておこうと思います。

結構、同じようにハマっている方がいらっしゃったみたいですが外国の方が多かったようなので日本語で。

TF0.12からTF1.0への変更点については、日本語化されたドキュメントも多数ありますのでそちらに譲るとして、Seq2Seqチュートリアルをカスタマイズするうえで記載されていない変更点があり、それに苦労しました。

どうもTF1.2ではその対策が取られているみたいですが、詳しく読んでいないので割愛します。

RNNCellの仕様変更

その変更点というのは、RNNCellの仕様変更という部分なのですが、RNNCellの再利用のルールが厳しくなっており、単純にコードを1.0化するだけでは使えないという問題が発生しました。

ValueError: Attempt to reuse RNNCell <tensorflow.contrib.rnn.python.ops.core_rnn_cell_impl.BasicLSTMCell object at 0x10210d5c0> with a different variable scope than its first use. First use of cell was with scope 'rnn/multi_rnn_cell/cell_0/basic_lstm_cell', this attempt is with scope 'rnn/multi_rnn_cell/cell_1/basic_lstm_cell'. Please create a new instance of the cell if you would like it to use a different set of weights. If before you were using: MultiRNNCell([BasicLSTMCell(...)] * num_layers), change to: MultiRNNCell([BasicLSTMCell(...) for _ in range(num_layers)]). If before you were using the same cell instance as both the forward and reverse cell of a bidirectional RNN, simply create two instances (one for forward, one for reverse). In May 2017, we will start transitioning this cell's behavior to use existing stored weights, if any, when it is called with scope=None (which can lead to silent model degradation, so this error will remain until then.) 

github.com

 実際のエラーメッセージを上げると上記のエラーになります。同じ変数を違う名前空間で使用することができないといった内容でしょうか。

チュートリアル上でいうと、TF0.12対応のチュートリアルでは、エンコーダで使用するRNNCellとデコーダで使用するRNNCellが同一のものが使われているのですが、仕様上それができなくなったようです。

そのため、エンコーダとデコーダのRNNCellを分けて定義する必要があります。

また、multiRNNCellの定義の仕方をMultiRNNCell([BasicLSTMCell(...)] * num_layers), から MultiRNNCell([BasicLSTMCell(...) for _ in range(num_layers)]).に変えないといけないという指示も出ています。

おそらく、チュートリアルを動かすだけの場合はこの対応のみで回るんでしょうが、今回はカスタマイズしたため、全体的にRNNCellの定義を変更する必要が出てきました。

 

RNNCellが再利用されるべきものか新たに定義すべきものか

ここで気を付けたのが、RNNCellがどのような動きをすべきかというところです。

再利用されるべきものの場合名前空間(VariableScope)に引数として、Reuse=Trueを追加するという対応になりますが、別のものの場合Cell自体の変数定義を別に使用しないといけません。チュートリアルのSeq2SeqModel.pyではRNNCellを別の関数間で再利用しているものがあるので、形は同様の別のRNNCellを利用する場合は新たに変数としてCellを定義してやらないといけません。

同ファイルではDeepCopyという関数を使ってそれを行っていますが、どうもうまくいきません。(DeepCopyでは同じものを使っていると認識するのでしょうか?ごめんなさいよくわかりません)

結構長期間の格闘の末、何とか動くようにはなりましたが、どうもTF1.0~1.1でSeq2Seqチュートリアルを行うのは無理筋のようです。(URLは失念しましたが調べている間に同バージョンでSeq2Seqチュートリアルを使用するのは非推奨という記載も見かけました)

 

Seq2Seqチュートリアルを利用する場合は0.12のままで、もしくは新たなチュートリアルの登場を待ったほうがよさげ

TF0.xのSeq2Seqライブラリについては、TF1.xではregacy_seq2seqライブラリとして遺産的に扱われています。変更を加える予定で(1.2ですでに変更されているかもしれませんが)残されているような形になっています。

今回の1.2への変更でRNNCell周りの仕様が大幅に変更されているっぽいのでそれを基に新たなSeq2seqチュートリアルが出てくるかと期待しているのですが、現状Seq2seqチュートリアルをカスタマイズする場合はTF0.xで行うほうがよさげです。

 

スピード指数特化型競馬予想ソフトの限界

f:id:bananawoma:20160926170603j:plain

初めに、安田記念を振り返って

安田記念、非常に面白いレースでした。

前年のスローを見事に逃げ切ったロゴタイプですが、今年の安田記念ではモーリスという決定的な目標馬がいない中、去年の安田記念は再現性が低いと8番人気の低評価。

実際に、今年の安田記念はそれなりに流れる展開となり昨年とは違う前半の早い流れた逃げを打つことになりました。

しかし、ロゴタイプはしっかり残り2着を確保。他の掲示板馬が後から言った馬ばかりの中見事な競馬と言えると思います。

 

さてこのロゴタイプですが、去年の安田記念の印象が強すぎて流れたレースになると向かないと評されていたようですが、実はそんなことはありません。

実は2013年の皐月賞や、2015年の中山記念など流れるレースでこそ実績を出してきた馬です。

血統的にも父方が地力勝負に強いサドラーズウェルズにさかのぼる血統であったり、母方にリズンスターが入っていたりと最近はやりの上がり勝負どんと来いという血統ではありません。

それが8番人気なのですから、結果論として美味しい馬と言えたと思います。

 

また勝ったサトノアラジンもいいレースをしました。能力はあるものの不利を受けたり、展開に注文がついたり非常に難しい馬です。前走のちぐはぐな競馬が評価されてこちらも7番人気の低評価でした。

鞍上の川田騎手は余り後ろのほうで器用に立ち回る印象のある騎手ではありませんが、外枠を活かし、スムーズな競馬、3コーナーに入ったあたりで勝ったなと感じさせるナイスレースでした。

 

スピード指数特化型競馬予想ソフトの限界

さて、自慢です。自慢になってない気もしますが。

 

上記のようなことがあり、今回は馬券を見事に当てることができました。

しかし、サトノアラジン、ロゴタイプは今回4番手5番手評価。これらを本命対抗にしたのはツイッターにも書いた通り距離短縮組のステファノス、アンビシャスの評価を私が勝手に下げたためです。

スピード指数で能力を図る、という事は(馬場を考慮したうえで)その馬の走破タイムを評価するという事になります。

ポテイトーズは過去何走かのデータを評価しているため、近走実績を基にどれぐらいの走破タイムで走れるポテンシャルを持っているか、また、それを今回発揮できるか、という点のみを評価しています。

 

そのため、距離短縮組はペースについてこれなくなって厳しいだとか、藤原厩舎は休み明けを使って仕上げてくことがあるので、ステファノスは叩き2戦目の前走が買いタイミングであるとかそういう情報は全く入っていません。

(大阪杯はステファノス本命でした)

このスピード指数はトータルでの3着内率を導き出すには非常に便利な指標なのですが、上記のようなことが反映されていないためレース個々を評価するのは苦手なんです。

今年のダービーも苦手なレース

さらに言うと今年のダービーも苦手なレースでした。馬場状態でいえばタイムが早く、前に行っても残れる馬場、かつ、横山典弘ジョッキーの巧みなレースづくりによる異様なスローペース。いわば位置取りのハンデを付けた残り数100mの短距離走の様相を呈しています。そうなるとスピード指数は無力です。馬の能力の傾向はわかっても、必要なのは前につけられてかつ早い上りを出せる馬はどれかを探すレースになってしまいます。

そのため指数上位3頭(アルアイン、レイデオロ、ペルシアンナイト)の中から、一番前につけられるだろうアルアインを本命にしたんですが、まさかのレイデオロが途中で動くというファインプレーでした。(ペルシアンナイトも同様に動きましたが、最後伸びませんでしたね。ハービンジャーが悪さしたのでしょうか)

指数派の人には、出足の指数、上がりの指数なども考慮している人もいると思いますが、ポテイトーズはそういうのは全く考慮していません。フラットな実力勝負になったときどの馬が勝つ確率が高いかを出しているだけです。

そのためダービーのようにルメールジョッキーの好騎乗がすべてのようなレース(もちろん指数上位でしたしレイデオロの能力に疑いはありません)は苦手です。

 

さらなる精度向上のために

最近の競馬はもう展開次第というのが正直な感想です。

つまり与えられたデータから展開をどう読むかというのが精度向上のカギになってくると思います。

展開なんぞ読まなくても美味しい馬を選んでその馬券を買うという手法はかの有名な馬券裁判や、イギリス?香港?の投資筋の3連単馬券脱税もありある程度手法として確立しているのかなというのが実感です。

そのため、三連複の美味しい馬券は思ったよりつかないというのが実際に運用してみた感想です。

統計から、投資的に馬券を買う余地はまだまだ残っているものの、システム競馬予想のフェーズは精度向上も重要な要素になってくるなと。

システム馬券2.0は機械学習や強化学習を使用したいと思っているのですが、具体的なアイデアはまだまだわかない今日この頃です。

edX PH526x Using Python for Research を修了してみた

f:id:bananawoma:20170117122719j:plain

こんにちは。お久しぶりです。

はたらいたです。

 

今電脳賞用のライブラリをPythonで作ってみているんですが、そもそもPython自体をそこまで理解しているわけではなかったので、edXの「Using Python for Research」を履修してみました。

 

今回は、この講義の感想などをつらつらと書いていきたいと思います。

 

edXとは

edXとはハーバード大学やマサチューセッツ工科大学などが参加するMOOCsで、大学レベルの講義をオンラインで無料で提供しているサービスです。

履修証明書Cirtificateを受け取るにはいくらかのお金がかかりますが、基本的に講義を受けたり、課題を提出する分には無料です。

同様のサービスとしてスタンフォード大学などが参加するcourseraなどがあり、スタンフォード大学の機械学習コースなどが有名ですが、それ以外にもテック系、データサイエンス系、だけでなくビジネスマネジメントやリベラルアーツなど様々な講義が公開されています。

PH526x Using Python for Researchとは

私が履修したコースはハーバード大学が監修する、Pythonをリサーチに使うための入門講義です。

入門講義とはいえ、Pythonの基本的な使い方から、numpy、matplotlib、pandasなど、データ分析に必要なライブラリなどの演習などを網羅的に学ぶことができます。

講義のレベルはIntermediate(中級)となっております。

本当にプログラム初心者の方は他の入門コースを履修することをお勧めしますが、他の言語を習得しているひとで、pythonに興味がある人については、難しくない内容となっておりますので、おすすめです。

因みに私はC#とVB、VBAはある程度理解している状態でのスタートでした。

 

今更だけどPythonは書きやすい

さて本当に今更な話題で申し訳ないのですが、VB、C#からPythonに移行してみて感じたことは、本当にきれいで書きやすいプログラム言語だという事です。

なんというのでしょうか、私のような初学者でもすんなりと入ってくるようなコードに美しさを感じました。

VBやC#だとどうしても長くなってしまいがちなコードでもPythonであればきれいに書けます。(もちろんVBでもきれいに書くことは心がけていますが)

 

今更だけどPythonはライブラリが豊富

さてまたも本当に今更な話題で申し訳ないのですが、Pythonはライブラリが豊富です。

今回の講義ではNumpy,matplotlib、pandasを使用しましたが、非常に使い勝手はよく感じました。特にNumpyやPandasはPythonの弱点である遅さをカバーしてくれるしPython信者になってしまいそうです。

今後テンソルフローをやってみたいと思っているのですが、こういう色々なライブラリに対応しているのもPythonの強みだと思います。

 

話は戻ってPH526x Using Python for Researchの感想

これについては履修して非常に良かったと思います。

個別の課題は難しくもなく簡単でもなく、すんなりと入ってくる内容になっています。

またPythonの便利さや、今後の学習の指針になるような示唆に富んだ講義になっています。

ただ、courseraの機械学習コースとは違い日本語字幕があるわけではありません。

全編英語なのがなかなかの曲者です。

 

しかし、先生の英語は非常に聞き取りやすくわかりやすいのである程度の英語知識があればすんなりと入ってくるレベルです。

また、再生速度を変更する機能もついているので、もしわからない場合はゆっくり再生、わかる場合は高速再生などをできるのもありがたいところです。

私の場合は、時間短縮のため、基本1.5倍速で聞いていたのですが、それでもすんなり入ってくるぐらいわかりやすい英語なので、英語コンプレックスがあっても大丈夫だと思います。

 

他のPython入門コースも気になる

さて、今回はハーバード大の講義を受けましたが、edXにはコロンビア大学や、MIT、マイクロソフトなど他の機関が提供するPython入門コースも存在します。(しかもどれもデータアナリスティックに特化したものです!)

さらに敷居を低くすれば本当のpython入門もあるのですが、これはググれば出てくるレベルなので、わざわざ講義を受ける必要もないのかなというのが感想です。

データアナリスティックについてPythonを使うと考えた場合今回のコース履修は非常に有用だったと思うので、他の講義がどんな内容なのか比較するのも面白いかなと思うのですが、それは時間があったらします。

 

私が言いたいことは一つPython面白い!

JRA-VAN DataLab. PYTHON対応化計画(非公式)①動機と環境設定

f:id:bananawoma:20160926170603j:plain

こんにちは。

ニコニコ生放送の『電脳賞』も終わり平穏な日々を過ごしております。

『電脳賞』出演において、場を提供していただいたドワンゴ様、共演者様、視聴者様には遅くなりましたが、この場を借りてお礼申し上げます。

(この記事では人工知能という言葉を繰り返しますが、私の定義する人工知能の意味合いとは少し違います。一般化して書いてるつもりなのでご容赦ください)

電脳賞をふり返って-DatalabとPythonの相性悪くない?-

 

『電脳賞』をふり返ってみると、ふがいない気持ちなどの個人的感情はさておき、少し残念な点がありました。

電脳賞とはJRA-VANが提供するDatalabという競馬データベースを用いた電脳予想大会です。

将棋、囲碁などで人工知能が人間をやっつける中いよいよ競馬にもその波が来たか、という感じですね。

人工知能を用いて参戦するチームもあれば、人工知能を使わず参加するチームもありまさに混迷を極めた大会でした。

さて、話を戻すと、私が残念と感じた点はJRA-VANの提供するJV-LinkというソフトウェアおよびAPIと、人工知能のライブラリが豊富な言語Pythonの相性がすこぶる悪いということです。

その為、競馬ファンは人工知能を活用できず、人工知能技術に秀でたものは競馬の知識が十分ではないという状況が発生しました。

結果的に上位に両方の知識を兼ね備えるチームが名を連ねたことを考えると、バランスは良かったとも言えるのですが、私の希望としては競馬ファンにもっと人工知能を身近に感じてもらいたいという思いが強くなりました。

 

じゃあPythonのDatalab. JV-Linkライブラリを作ればいいじゃない

第3回電脳賞があるかどうかは分からないのですが、今の状況では次回以降もJRA-VANのデータを用いた機械学習ソフトを開発するのは少しハードルが高い気がします。

もっと大会を盛り上げるためには、予想の部分に時間をかけられるように前段の準備期間を短くする必要があると感じています。(これは優勝チームのニコちゃんAI競馬さんもおっしゃってました)

なので唐突ですが、JV-LinkようのPythonライブラリをつくっちゃおうと思っています。(というかもう作り始めています。)

意外と嵌る環境設定の落とし穴

さて、このプロジェクトを始めるにあたってまず環境設定で相当嵌ったので忘備録として嵌った場所を残しておこうと思います。

  1. python3でも大丈夫だけど32bit版じゃないとダメ
  2. Ctypesじゃなくてwin32comを使う
  3. anacondaはめっちゃ楽

とりあえず、環境設定の段階で上の3つが激嵌りしたところです。

python3でも大丈夫だけど32bit版じゃないとダメ

まずはこれです。これは本当にめちゃくちゃはまりました。何をやってもダメな状態でした。

まず、JV-Linkの説明ですが、このアプリケーションはVBやC#など公式サポートされてる言語で開発する分には32bit及び64bitに対応しています。

しかし、JV-Link自体は32bit用の64bit用の両方が用意されているわけではなく、用意されているのは32bit版のみです。windowsのWOW64というエミュレーション機能により64bit版でも使えるというだけなのです。

私は64bit版python3.5を使用していたため、どうしても32bitアプリであるJV-Linkをpythonからたたくことができませんでした。

(私は低スペック低スキルのため実際にはpython上でWOW64的にエミュレートすることもできるかもしれません)

32bit版python3.5をインストールしそちらを使用するだけで解決したので、Jv-Linkを使う時は32bit版のpythonで行うことをお勧めします。

Ctypesじゃなくてwin32comを使う

はじめにCtypesを使ってJV-Linkに接続を試みたのですが、大はまりの大失敗でした。

どうやってもCtypesではJV-LinkのDLLを呼び出すことができません。

JV-Linkの主な機能はJVDTLab.dllの中のJVLinkクラスの中にあるようなのですが、Ctypesではどうしても表面だけしか参照することができずJVLinkクラスにアクセスさえできませんでした。

(おそらくこれらも私の低スキル低スペックが原因)

そこで、Ctypesをあきらめwin32comで接続を試みたところすぐに接続することができました。

こちらについては次回詳しく書いていこうと思います。

anacondaはめっちゃ楽

3つ目のはまりポイントは作業効率のお話です。

始めはテキストエディタと標準のpython3.5のみでコツコツやっていたのですが、生産性が悪すぎてanacondaを入れることにしました。

するとどうでしょう。必要なライブラリはだいたい入っているし、Spyderも使い勝手が悪くないし生産性が格段に上がりました。

上級者のかたは、それでも生産性が悪いとおっしゃるかもしれませんが、私にとっては大きな進歩です。

というか、もっと生産性が上がる方法教えてください。おねがいします。ぺろぺろ。

 

さて、もし完成したらライブラリとしてオープンソースで公開しようと思ってるこのプロジェクトですが、前途は多難そうです。VBA中心にやってたおっさんにはなかなかハードルが高いというか心が折れそうになることが多々あります。

でもやっぱり一度参加したものとしては電脳賞が今後盛り上がるように何かできればと考えているので頑張ります!

大会ではご声援にこたえることはできませんでしたが引き続き頑張りますのでご応援いただけると有難いです。

 

 

 

 

 

エイプリルフールなのでポテイトーズの今日の買い目全部公開します

こんにちは。

エイプリルフールなので今日のポテイトーズが算出した買い目を全て紹介します。

現在のオッズに基づく買い目なので電脳賞提出分とはことなることをご容赦ください。

まあ、こういうのを公開した日には当たらないのが通例ですが、

余りにもお芋さんのレース選びが下手すぎるので全買い目を出してみたいと思います。

 

まずは馬連です。

今のところ当たっていないので、当たるかもしれません。

当たらないかもしれません。

f:id:bananawoma:20170401124757p:plain

 

次に三連複。

こちらも当たってないので当たるかもしれません。

bakenshu JyoCD RaceNum Kumi 掛け金
三連複 中山 02 011316 1400
三連複 中山 02 011416 1300
三連複 中山 02 011113 2000
三連複 中山 02 011114 2000
三連複 中山 02 031316 1600
三連複 中山 02 041316 1500
三連複 中山 04 020616 2600
三連複 中山 04 020607 2000
三連複 中山 04 040708 1500
三連複 中山 04 040508 1600
三連複 中山 04 040816 2000
三連複 中山 07 050910 1300
三連複 中山 07 051016 1200
三連複 中山 07 050610 1200
三連複 中山 07 061013 2600
三連複 中山 07 061011 1000
三連複 中山 07 081014 1300
三連複 中山 07 101116 1100
三連複 中山 08 010214 500
三連複 中山 08 010814 300
三連複 中山 08 020811 1600
三連複 中山 08 020611 1800
三連複 中山 08 021113 500
三連複 中山 08 021314 600
三連複 中山 08 030711 200
三連複 中山 08 040614 500
三連複 中山 08 050814 600
三連複 中山 08 050611 700
三連複 中山 08 060814 1500
三連複 中山 08 061314 400
三連複 中山 08 081314 400
三連複 中山 10 010511 300
三連複 中山 10 040511 300
三連複 中山 10 051115 800
三連複 中山 10 051112 2000
三連複 中山 10 051113 1300
三連複 中山 10 050911 2800
三連複 中山 10 050811 2100
三連複 中山 11 010511 400
三連複 中山 11 020512 500
三連複 中山 11 021112 400
三連複 中山 11 041112 600
三連複 中山 11 051214 900
三連複 中山 11 051116 1200
三連複 中山 11 051113 400
三連複 中山 11 050714 900
三連複 中山 11 070816 1000
三連複 中山 11 081116 1300
三連複 中山 11 081213 300
三連複 中山 11 081216 800
三連複 中山 11 111214 700
三連複 中山 12 021115 700
三連複 中山 12 020411 2100
三連複 中山 12 020607 100
三連複 中山 12 021112 1000
三連複 中山 12 020407 100
三連複 中山 12 020615 500
三連複 中山 12 020415 500
三連複 中山 12 020306 500
三連複 中山 12 020506 300
三連複 中山 12 020311 700
三連複 中山 12 020612 700
三連複 中山 12 021213 800
三連複 中山 12 021316 1300
三連複 阪神 03 010413 1000
三連複 阪神 03 010916 700
三連複 阪神 03 010516 700
三連複 阪神 03 021316 800
三連複 阪神 03 020409 700
三連複 阪神 03 020916 600
三連複 阪神 03 040609 600
三連複 阪神 03 041416 1000
三連複 阪神 03 041314 800
三連複 阪神 03 040514 800
三連複 阪神 03 040613 900
三連複 阪神 03 041116 800
三連複 阪神 04 010405 600
三連複 阪神 04 020409 3300
三連複 阪神 04 030815 800
三連複 阪神 04 031516 800
三連複 阪神 04 030616 700
三連複 阪神 04 030809 700
三連複 阪神 04 030614 800
三連複 阪神 04 040515 600
三連複 阪神 04 040911 600
三連複 阪神 04 040506 700
三連複 阪神 05 010616 1900
三連複 阪神 05 020714 1900
三連複 阪神 05 020716 1900
三連複 阪神 05 021416 2400
三連複 阪神 05 061516 1700
三連複 阪神 07 020316 1900
三連複 阪神 07 021316 1300
三連複 阪神 07 030816 300
三連複 阪神 07 031116 1300
三連複 阪神 07 031516 300
三連複 阪神 07 030910 1000
三連複 阪神 07 051316 500
三連複 阪神 07 081316 200
三連複 阪神 07 091016 1300
三連複 阪神 07 101216 1100
三連複 阪神 07 131516 300
三連複 阪神 10 010310 400
三連複 阪神 10 010207 2500
三連複 阪神 10 010810 400
三連複 阪神 10 010406 1200
三連複 阪神 10 010306 600
三連複 阪神 10 010203 500
三連複 阪神 10 010309 600
三連複 阪神 10 010210 2900
三連複 阪神 10 011015 400
三連複 阪神 12 010211 500
三連複 阪神 12 010712 700
三連複 阪神 12 010204 600
三連複 阪神 12 010912 1000
三連複 阪神 12 010209 700
三連複 阪神 12 020512 1400
三連複 阪神 12 020511 500
三連複 阪神 12 020714 200
三連複 阪神 12 020507 900
三連複 阪神 12 050912 1000
三連複 阪神 12 051112 500
三連複 阪神 12 050712 800
三連複 阪神 12 060712 100
三連複 阪神 12 091214 300

 

醜いですが、画像で貼ると小さくなりすぎたのでプレーンテキストで貼ります。

こういうことすると当たらないのですが、今日はエイプリルフールなので出してみました。

新入社員に知ってほしいWHYよりHOWを重視するという考え方

f:id:bananawoma:20170117142400j:plain

こんにちは。

昨今、世の中では疑問を持つことが大切だと言われています。

なんで?いつ?誰が?

非常に良いことだと思います。

世の中の発見、ニュースなどありとあらゆるところに疑問と解決があふれています。

例えば5W1Hという言葉があります。

  • When(いつ)
  • Where(どこで)
  • Who(だれが)
  • What(なにを)
  • Why(なぜ)
  • How(どのように)

ライティングや、ニュース記事のヘッダーを書くときのルールです。

また、仕事の上での報告の際にも使われる言葉です。

これらの事を明確にすることで、受け手により明確に状況を伝えることができるという非常に便利なものです。

 

また、トヨタの改善生産方式の根幹をなすものとして「なぜなぜ分析」というものがあります。なぜ?が消えるまで原因を追究していって真の問題をあぶりだすというものです。

しかしこれらのツールは非常に便利な反面、こと解決という意味においては意外と使いづらいと感じています。

 

なぜを重視する風潮の問題点

なぜ、「なぜなぜ」分析が使いにくいのか。それは多くの人にとって「なぜ」という言葉は問題点を外部に転嫁するマジックワードになりがちという点です。

なぜなぜ分析で重要な要素として、「なぜ」と「なぜ」が論理的につながっている必要があるという点があります。

過去の仕事柄、なぜなぜ分析を使うことが多く、またそれを要求する立場にもありました。経験上、なぜなぜ分析を行うと、なぜか属人的な意見に行きついてしまいます。

例えば、「だれだれさんの能力が十分でないから」とか「だれだれさんとだれだれさんの仲が悪いから」とかそういうところに落ち着いてしまうのです。

それはなぜかというと、「なぜ」と「なぜ」をつなげるのに一番手っ取り早い方法が、それであるからです。

そこからもう一回「なぜ」を繰り返せば問題の解決につながったりするのですが、人は人のせいにできた時点で思考を止める甘いところがあります。

なぜ「だれだれさんの能力が十分でないのか?」を突き詰めると、教育体制が甘いであるとか、能力が十分でないといけないような業務形態になっているなど、改善点が浮かんできます。でもなかなかそこまでたどり着いてくれません。

なぜかというと、もう人のせいにできた時点で問題が自分の手を離れているからです。

 

どのようにすれば、で逃げ道をなくす

そこで私が重視している考え方が「WHY」のあとに「HOW」を必ずつけるという考え方です。

私がどのようにすれば問題が解決するのか。もしくはあなたがどのようにすれば問題が解決するのか考えましょうという事です。

それはなぜか。「なぜなぜ分析」なぜを解き明かした(という錯覚)で満足してしまいますが、それに「HOW」がついてくるとそういうわけにはいきません。

例えば「だれだれさんの能力が十分でない」という問題に「それを私がどうすれば解決できるのか」というのを付け加えると、「だれだれさんを配置換えする」「だれだれさんを教育する」などの案まで考えないといけません。

正直、なぜを考えるより何倍もしんどい作業です。

しかしそれをすることにより問題が解決に向かうというのも一つの事実です。

 

なぜという言葉を何回も書いていたらだんだん飽きてきました。

おそらく読んでいただいている方も「なぜ」という文字がゲシュタルト崩壊し始めているのではないでしょうか。

これ以上書くことはお互いのためではありません。

「なぜ」より「どのように」、これが大事だよという事が言いたいだけなので、そこだけ気に留めていただければ幸いです。

 

 

【広告】競馬コンシェルジュAI「ポテイトーズ」のある生活

f:id:bananawoma:20170117150549j:plain

府中に住んでかれこれ十数年になる。

競馬は毎週やっているが、もう何年も競馬場に行っていない。

昔はよく府中競馬場に行き3コーナーで声をからしていたが、今は声をからすこともなくなった。

日曜日の朝、I-Phon16にセットしたドビュッシーのアラベスク第一番で目を覚ます。

これはあくまで個人的な好みだが、目覚めがいいのはチッコリーニの音源である。

イーストティモールをドリップしながら僕はIPhonに語り掛ける。

「Heyポテイトーズ。3万円」

ポテイトーズはスマートAI競馬コンシェルジュアプリである。

Iphonの画面に3つのコースが表示される。

・予算10万円コース 60%

・予算30万円コース 90%

・予算60万円コース 95%

ポテイトーズは回収額を設定すると複数の買い目の組み合わせを自動選択で提示してくれる。

やれやれ。

そう辟易しながら僕は10万円コースを選択する。

それだけで馬券の購入まですべてやってくれる。

ポテイトーズの予想確率はあくまでその回収額を超える確率であり、100%を下回ることはほぼあり得ない。

それでも確率の低いものを選んでしまうあたり、やはり僕は生まれながらのギャンブル中毒なんだろう。

ふとSNSをチェックする。

「今日の有馬記念、会社のお金500万円をオルロフの単勝に全部かけます」

オルロフとは今年の3歳クラシック三冠馬で父サトノダイヤモンド、母ジュエラーの良血場である。

いまや日本競馬において「サンデーサイレンスの血の一滴は、10カラットのダイヤモンドよりも価値がある」と言われている。

そのサンデーサイレンスの血を奇跡の血量で持つこの無敗の3冠馬は、189.62カラットのダイヤモンドと同じ名前を与えられ、それにたがわぬ活躍を見せている。

単勝1.3倍、それがすべてを物語っている。

イーストティモールを飲みながら身支度を整える。

今日はロードバイクでプラダの似合う彼女と海に行く予定なのだ。

「下についたよ」

彼女からのメールだ。僕らはロードバイクに乗り横浜に向かう。

左へカーブを曲がると、光る海が見えてくる。

僕は思う。この瞬間は続くと、いつまでも。

みなとみらいで映画を見たり、いろいろしてるとiphonに競馬ニュースが入ってくる。

有馬記念。オルロフは2着に敗れた。買ったのは日高産のキタサンブラック産駒、キタサンホワイトだ。突然変異の白毛馬で完全に人気過剰の馬だと思っていた。

「やはり競馬に絶対はない」

そんなことを考えていると、ポテイトーズから収支報告が入ってきた。

+32600円

中央線は人身事故の影響で遅れている。

やれやれ。

競馬には絶対がある。

そう、ポテイトーズならね。

----------------------------------------------------------------------------------------------------

 

という夢を見たんだ。