とある大学生の勉強メモ

Python, C#, UWP, WPF, 心理実験関連の開発備忘録

Pythonで大きな文字をランダムに出力する方法

目次

前置き

 卒業研究をするにあたってPythonで0から9までの数字をランダムに表示させたかったので、ひとまずGUIを作る事にしました。しかしオブジェクト指向PyQtは書かれており、そもそも手続き的な実験には不向きだと感じました。PyQtの記事はまた出しますが、ユーザーからのインプットがなければオブジェクト指向は動かないので、更新コマンドだけでは中々立ち行かない事が多いと思います。

 データはプログラミングして自動で取りたいけど、大きな数字をどう表示しようか迷いました。GUIは解像度を下げるなどしても小さくて見づらいです。なぜかhtmlのh1以上の大きさにできなかった(僕が探し切れていないとは思いますが。結構頑張ったんだけどなぁ……)。

 という事で大きな数字をランダムに次々と表示したいよ!というオーダーをかなえる為に以下の方法を取りました。

0~9の画像を出力する(笑)

 ディスプレイの定位置に0~9の数字を表示させればもういいんじゃね、と思いその方向でコーディングをしました。以下に全て載せています。

github.com

importするライブラリ環境を整える

 画像出力はcv2を用いました。理由は簡単に画像を消すコマンドが用意されているからです。MatplotlibやPILを利用されている方も多かったですが、結局今回のケースだとcv2が楽でした。

 まず

pip install opencv-python

 AnacondaのCMDから上記コマンドでcv2を入れます。

 pip install cv2ではないので注意。

 表示させるコードは以下の通り。これで0から9までの数字の中からランダムに予め用意した写真を表示してくれます。僕の場合は本コードと同じフォルダにpictureフォルダを用意して、そこに写真データを置きました。そこから呼び出す感じです。

number = random.randint(0,9)

im = cv2.imread("picture/%d.jpg"%number,0)

  cv2.imshow("%d"%number,im)
  cv2.waitKey(1)
  cv2.moveWindow("%d"%number, x, y)

 cv2.waitKey(n)は実は必要なコードで、n[ms]経ってキーボード入力がなければ表示するという意味です。中身を0にすると、キーボードを押さない限り一生何も表示されません。

  cv2.moveWindow("%d"%number, x, y)でディスプレイの好きな所に表示させましょう。

 そしてcv2.destroyAllwindows()によって全ての画像ファイルを消す事が出来ます。


次にペイントででかでかと1のピクチャを作ります。表示させる写真を用意

 名前はプログラムで簡単に呼び出せるようにシンプルにした方が良いと思います。保存はjpgでしました。cv2では他の形式でもいけるとは思うのですが、出来ないと面倒なので前例に従いました。

f:id:amakazeryu:20190204102602j:plain

結び

 今回はGUIを使わずに0~9の画像を出力させる方法を考えました。これから単純実験をする時に画像を使うという手法は結構良い気がします。

 もちろんGUIを使ったやり方も必要になってきますので、オブジェクト指向の勉強もしていかないとですね。

 それではお疲れ様です。

openSMILEで得た音響特徴量をwekaでSVMする手順

 目次

序論

 卒業論文を制作するにあたって結構苦労したので、ブログに残しておきます。

 全体の流れは、

  1. openSMILEで音ファイルから音響特徴量をarff形式にして抽出。
  2. ラベリング後にwekaによってサポートベクター分類。

 音響特徴量やopenSMILEの構造に関しては,こちら

https://amakazeryu.hatenablog.com/entry/2019/06/22/190002 

 

 openSMILEやwekaは海外のソフトなので日本語ページが不足しており、僕もわりかし苦労しました。単に機械学習するだけなら、wekaのGUIが優秀なのですぐにできるのですが、データの取り扱いやパラメータ設定でちんぷんかんぷんだったので、その記録を残します。

環境

  • windows10 64bit
  • GPU:Geforce1080Ti
  • CPU:i7 7700k
  • メモリ:16G

openSMILEの手順

インストール手順

 openSMILEはINTERSPEECH2009~2013の論文に由来する音響特徴量抽出の為のソフトウェアです。音響系では割と色々な論文に使われている。

https://www.audeering.com/opensmile/

 このページからzipファイル形式で落とせば良いと思います。gzファイルの場合はcygwinを入れないとwindowsでは開けません。他にも有料アプリがあるけど、Linux系に出来てwinに出来ない事は大抵cygwinを入れたらよいかと思います。

 展開してopensmile-2.3.0\bin\Win32までいってGUIを起動したんですが、あんまし上手く動いてくれませんでした(涙)。コアダンプが起こっていてエラーメッセージがちゃんと出てくれないので、他の方法を取る事に。

 

特徴量抽出手順

 英語マニュアル本を読むと、

SMILExtract_Release -C config/IS10_paraling.conf -I input.wav -O output.arff

 というコマンドによって取り出せるとマニュアルに書いてあったので、実行すると実際にarff形式で取り出せました。「input」の所に対象のファイル名を入れると「output」の所に「input」から抽出した音響特徴量が上書きされます。

 仮にarff形式のファイルがなければ、output.arffが生成されます。

 configファイルはどの方法でどの特徴量を抽出するかを決める所で、configフォルダに色々あります。IS10はinterspeech2010 paralinguistic challengeに由来する設定です。目的に合わせて選べば善いかと思います。

 

クラスタリング

-instname input -class 0

 というコマンドを末尾に加えることで、新しい要素をarff形式に入れる事ができます。

 100個ぐらいの音声データから音響特徴量を抽出したかったので、今回はバッチファイルを作りました。下は一例。

.bat  
  cd C:\Program Files\opensmile-2.3.0\bin\Win32
  set i=1
  :loop
   
  rem class label 0 means the user is puzzled, 1 means normal condition.
  SMILExtract_Release -C config/IS10_paraling.conf -I input_%i%.wav -O output_IS10.arff -instname input_%i% -class 0
   
  rem ↓↓IS09 config file ver
  :SMILExtract_Release -C config/IS09_emotion.conf -I input_%i%.wav -O output_IS10.arff -instname input_%i% -class 0
   
  set /a i+=1
  if %i% leq 100 goto loop


 SMILExtract_Releaseと同じフォルダにconfigフォルダとinput.wavを置きました。input.wavは取る時にナンバリングしておいたので、iのfor文を回す事によって一気にやってくれます。ちなCMDでやったので、「rem」や「:」とかはコメントアウトの部分です。パワーシェルを使ってもよいかと。

 classは後で機械学習する際の教師ラベルです。

 ひとまず特徴量抽出はこれでおしまい。

 

wekaでSVM

 さてwekaでSVMをしましょう。openSMILEではGUIが上手く動いてくれなかったので苦労しましたが、wekaはグラフまで一瞬で書いてくれる優れものです。下のリンクからダウンロードして起動しましょう。

https://www.cs.waikato.ac.nz/ml/weka/downloading.html

  飛べない鳥weka(ニュージランドクイナ)が可愛い。ExplorerからGUIを開きましょう。Open fileから抽出したarff形式を読み込みます。

 arff形式はcsvの進化系みたいなデータセットです。wekaに元々あるarff形式のデータを一例に示します。

@relation weather.symbolic

@attribute outlook {sunny, overcast, rainy}
@attribute temperature {hot, mild, cool}
@attribute humidity {high, normal}
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}

@data
sunny,hot,high,FALSE,no
sunny,hot,high,TRUE,no
overcast,hot,high,FALSE,yes
rainy,mild,high,FALSE,yes
rainy,cool,normal,FALSE,yes
rainy,cool,normal,TRUE,no
overcast,cool,normal,TRUE,yes
sunny,mild,high,FALSE,no
sunny,cool,normal,FALSE,yes
rainy,mild,normal,FALSE,yes
sunny,mild,normal,TRUE,yes
overcast,mild,high,TRUE,yes
overcast,hot,normal,FALSE,yes
rainy,mild,high,TRUE,no

  最初にデータの種類を

@ 名前 属性

 という風に書いて、@data以降に実際のデータが入ります。arff形式同士のファイルをマージする方法は判らないんですが、データを付け足すのが容易です。openSMILEならば入れる先のdataset.arffに対して次のようにコマンドを打てば、入れる事ができます。

SMILExtract_Release -C config/IS10_paraling.conf -I input.wav -O dataset.arff  

 後からデータを追加するのが便利で助かりますね。wekaでは一つのarffファイルしか開けないので、データはすべて一つのarffファイルにまとめるのが良いと思います。

 

 次に上のタブからclssify(分類)を選び、早速SMO(wekaでサポートベクター分類)をワンクリックでしようと思いましたが、なぜか押せない。SMOregは押せるんだけど。

f:id:amakazeryu:20190118155146p:plain

wekaで機械学習

 開いたarffファイルのclassラベルが良くなかったようです。arff形式のファイルをコードライティング用のソフトで起動し、

@attribute class numeric → @attribute class {0,1}

 にしてもう一度開くと出来るようになりました。numericはarff形式で実数を入れる事を意味するのでクラスタリングの意味合いを持たないようです。{0,1}の所は例えば天気なら{晴れ,雨,くもり}とかでも良いです。

 Chooseの横をクリックするとカーネルや誤差範囲、ランダムシードなどが設定できます。カーネルカーネルトリックの為に使うもので標準は多項式カーネルが用いられているようです。

 後はStart押すだけです。

 設定できる様々なパラメータに関してはまた後日解説したいと思います。お疲れ様でした。

 質問を頂いたので,その時の説明パワポリンク置いておきます.

drive.google.com

語彙辞典

 ほぼ自分用に言葉の整理をしておこうと思って書きます。普段何気なく使っている社会とか皆っていう言葉に違和感を覚えたのは中学生ぐらいです。「社会で通用しないぞ」なんて台詞、未だに訳分からず使っている「大人」がいますからね。

 使う言葉・概念を咀嚼した上で使うと言葉に重みが出ると思います。って事で割とお勧めなエントリになりそう。とりあえず分かりやすさメインでいきます。

 

定義したい言葉

定義内容

(コメント)

でいきます。

 

 

哲学

知を好きになること

(これが哲学ではない、って事を言うのは誰にもできない。自分が愛しているならそれが哲学なんです。)

 

社会

ある単位で差異が示される集合・領域

(解説記事はまたリンク貼っときます。ポイントは家庭とか友情とかとは区別しようって所ですかね。通用しないのは社会じゃなくてあなたでしょう?は是非押さえておきたい。)

 

世界

考えの及ぶ領域

 

信じる

欺瞞と安心のグラデーションを表す。

(安心とは疑いの意識する事すらない状態。信じるといった瞬間信じていない事になる。)

 

愛する

信じる事。時間をかけて信じる事を愛するという。そして多くの人が一般化しようという努力をしているが,いまだ一般性を獲得していないふわふわした単語.

(悪くないでしょう?哲学の相対性理論だ)

 

恋する

論理を抜きにして錯覚する事

 

純度

本心と発言・行動の比率。発言内容/本心.

(僕の造語です)

 

本物

純度と信用度が高いもの。閾値はものによる。

そもそも純度と信用はトレードオフの関係にあるが、その二変数の関数の極値閾値以上ならば本物になる。

(俺ガイルにインスピを受けたが、人類学とかやるとわかってくる。)

 

本質

ある対象の本質と材料が揃えば対象を作る事が出来る

(作れるようになるっていう点がポイント)

 

存在

意味領域に表象できること。意味がある事。

存在と時間とか読んでみると)

 

意味

対象が現象する仕方のこと。観測し得る。4=1+3で1+3は4の意味。文脈に依って2+2にも変化し得る。「世界の為に」っていう台詞に意味はない。なぜなら世界に意味を付与できないから。

マルクス・ガブリエルとかハイデガーとか読めば多分理解可能)

 

意義

辞書的であり普遍的な記号。ある対象の意義とはある対象を普遍的に説明できる記号である。

(お金は資本主義に於いて重要な価値指標ですね。マジョリティが疑いなく認めるものが意義です。意味は文脈依存なので、絶対的ではないという点に注意。ロシア語などでは明確に意味と意義を使い分けます。)

 

資本主義

意義に価値を置いたイデオロギー

(名誉、金そういったものに価値があり承認欲求が満たされる空間では、無意味な闘争や権力の奪い合いが生じる。半面競争が技術力の発展を生み出すのは言うまでもない。)

 

民主主義

属する一人の市民の主張できる権利を属する市民数の分母分の一にするというイデオロギー

(等しく一票というのはそういう事である。そして主張・思考・判断能力が平等でない以上、権利を平等にすると主張の平等性が崩れる。平等は平等でないという所以。)

 

科学

現象を再現させる手法

(再現性のないものを科学とは呼ばない。)

 

VR

人工現実。人に錯覚させる技術。

(誤解が多くてしんどいその一)

 

専門AI

人間にはできない処理を機械的に行ってくれるもの

(誤解が多くてしんどいその二)

 

AGI

人間みたいな機械

(誤解が多くてしんどいその三)

 

芸術

自分を表現すること

 

学術

法則を見つける事

 

リーダーシップ

人を巻き込む能力

 

インベンション

ないものを作ること.既存をつくること.

 

イノベーション 

既存のものを組み合わせること

 

カリスマ

言語化できないけどその人の為に自分を使いたいと思える不可視の能力

 

好き

もう一回やりたいと思えること

(対象を再度しようとするとドーパミンが分泌されること。誰かと一緒にやりたい事がいくつもあるなら、その人を好きなんて言う。)

 

良い(善い)

対象を継続させる為の概念

(ある事を継続させるために良いっていう概念で集団や自分をコントロールするんです。ハーモニーとか見たらミヤハが言ってくれてる。)

 

良い人

良いとは常に主観.主観から見て同じ価値観の人

(対義語 悪い人:主観と異なる価値観の人)

 

正しい

論理の枠に常に収まっているものでありTrue

(論理以外で正しいという事は無い事に注意)

 

情動

生体状態

 

感情

情動の予想と情動の差分。予測誤差。

 

生きるとは

生きる意味を探し続ける事

 

幸福感

他人との差分 過去の自分との差分

(感です。あくまで幸福と感じられるのは差分です。自己実現までいっても同じ事して慣れちゃったら幸福感を感じないです)

 

幸福

変わり続ける事とその変化を自己認識できる事

(安定の生活も不安定な過去があるから判るんです。そして普通に働いてお金を稼いで結婚しても全然いいんです。変わり続ける事の時間割合に決まりはないのですから。自己認識なので結局はパースペクティブとも言える。)

 

 

お疲れ様でした。良かったでしょう?

自分で定義する際の参考にしてください。

随時更新します!

 

 

 

 

 

 

 

 

 

2018年の振り返り

 色々な分野へ色々な深さで周遊する事が趣味なんですが、そんな僕が今年注目したテクノロジーや価値観をつらつら書いて2018年を締めようと思います。

先に要約

  • 音関連のセンシング技術が発達
  • モチベーションが高い人を能力が高い人という
  • あとはおまけ

テクノロジー関連

 ひとまず僕を驚かせたのはGoogleとNTTが作った人の声を個別に機械認識できるようになった事ですね。カクテルパーティ効果と呼ばれる人間の能力を機械でも再現できるようになった事は、センサー能力の向上という点で非常に大きいです。

 AI技術でデータ収集が重要な点ですので、データが取りやすくなったというのは、またテクノロジー発展の加速度を上げた事を意味します。ソフトを公開してくれたらなぁ、という風に思います。オープンイノベーションの風潮を高めて欲しいですね。

グーグル、AIで「群衆の中から特定の声を抽出する技術」を開発 - ZDNet Japan

 

 自分がこの一年音ばかりサーベイしていたので、音関連ばかりで申し訳ないのですが、Empathの感情音認識も面白かったです。まだまだ精度は良くないけど、先のセンシング技術向上でこちらも直に完成しそうですね。

 ハード面ではボストンダイナミクスのロボットがパルクールしていたのが面白かったですね。後は可愛いロボット作って欲しいな。本物の人間みたいな人形ってあるけど、動くロボットはまだ見たことがない気がする。アンドロイドだけど、石黒先生のロボット正直いって気持ち悪かったよ。もっときゃわいいの作ってくれ。

 通信もめちゃくちゃ良くなりましたよね。PUBGみたいな100人同時接続でゲームするっていうのも全然当たり前になりました。これも通信技術の発達のお陰です。感謝します。

 あとTGSとかでも思ったんですがVR・AR技術も普及が進んでいるなあと。その言葉を知らない若者がいないぐらいです。スマホゲームもどんどんAR化してます。まあVRだと解像度とフレームレートの壁がOculusでも突破できないみたいなので、とりあえずARが先ですかね。網膜投影とか他の技術発展でVRもいずれ波が来ると思います。

 GPU1080Tiの性能もさることながら、2080Tiも出ました。機械学習が誰でも手軽にできるような時代がやってきてます。Youtuberでさえやってます。もうそんな時期なのかぁ、と思っちゃいますね。もはや機械学習を回しただけでは研究とは呼べないですね。

 DeepLearngを含めた機械学習関連の勉強をしました。AI学会にも行ったので。勉強すればするほど勉強しないといけない事が増える感じです。DeepLearngの凄い点は特徴量を自動で見つけてくれるという事です。その為のパラメータは人間がつけてます。ただこれもDeepLearngさせようっていう研究をしているんだとか。もう訳分からん。

思想・価値観関連

 この一年で刺激を受けた価値観としては落合陽一先生のヴィジョンかなと思います。特にルネサンス以降の人間の自由意志が崩壊し新たに人間を再定義する時代の夜明けという文脈は共感するものがありました。前田社長の可処分時間→可処分精神への移り変わりやホリエモンのモチベーション格差などとも類似性が見られます。

 簡単に言うとモチベーションがあるやつにはどんどんモチベある人達が集まってきて、すごく大きな事を成し遂げられる。当然そういう人達の方が社会的に認められて地位を獲得する。まあそれがWell-beingなのかという事は話が別ですが。ともかくモチベがあれば基本なんでもできちゃう世の中になってきているので、今度はモチベがない奴をどうするかという話になるわけです。

 人間の能力は意志力で決まるという事は高校生ぐらいから僕は受験勉強を通じて体感的に、哲学的思考から理論的にも知っていました。この事実に何か大きな事を成し遂げたい、社会的に認められたいと思うならば、早く気付いて欲しいとは思います。別に僕は田舎で畑耕して作業終わりに旨い水と飯が食えるならいいじゃん派なんですけどねぇ(笑)。

 金がある=勝ち組っていう資本主義の構図はなくなるとまでは言いませんが、少しずつ崩れていくとは思います。人間の価値の指標として金があるって事はさほど重要でなくなってくる。ただ僕の生きている内は人の能力であったり資金力に価値性がある時代が続くような気がします。AIが人間の全ての仕事を代替してくれる時代は当分来ないだろうしね(どうせまた仕事が増える)。AGIが完成したら人間の仕事は幸せに生きる事になります。そうしたら人の価値は人の幸福度によって決まるとは思います。その時代は本当に遠い未来なんですけど。ただ今でも幸せそうな人ってモチベ高くて色々な人が集まって来るので、現在進行形でも幸せな人=価値が高いって言っていいかもしれないですね。

 今年はWell-beingが2割ぐらい占めていた一年だった気がします。なんか僕にとっては当たり前だと思っていた事が周りの人には共感が薄い事が多くて悩んでました。特にヨット部は僕と価値観の違う人ばかりだったので(それが嬉しくもあったんですけど)、それを受け入れつつも自分を主張する事の難しさに辛くなった時期もありました。ただ僕以外にもWell-being的考え方をする人達の多さに勇気づけられました。これを研究としてやってもいいんだよ、と励まされました。そして企業もその重要性に意識を向けている事も知りました。この視点を工学者でありながら持つ事は大いなる自信につながります。

余談その1

 そういえば仮想通貨はちょっとしぼんでしまいましたね。去年が凄かっただけに今年はハッキング以外にあんまし話題を集めませんでした。けどブロックチェーンの基幹技術は進歩が進んでいるのでこれから期待したいとは思います。非中央集権型の通貨は国家や国際組織の信用が弱くなった時に真価を発揮します。信用がなくなるイベントといえばパリのデモ(あれは不満のはけ口ですが)とかイギリスEU脱退とか随所に見られますね。ヨーロッパが仮想通貨の普及では先行しそうな気がします。次いでアメリカ、日本的な? でも中国のキャッシュレスの勢いはすごいから、そのままいくのかなぁ。けどキャッシュレス=仮想通貨ではないんだよね。まだ様子見ですかね。まずはBtoBで使われそう。2020までにBTC普及は無理な感じするよね正直。ってぐらいです。

余談その2

 Mリーグ開幕が結構嬉しいです。ボードゲームの中でも麻雀って下火なイメージが先行していましたが、こうやってプロリーグが開幕するという事は非常に大きな意味を持ちます、きっと。僕はボードゲームならそれなりにやってる人間なので、スマホゲームよりもボードゲームが流行って欲しいなー、と祈っています。

余談その3

 今年のスペクタルな経験を10個ほど書いてみる事に。

  • 江ノ島から大阪JR茨木駅までヒッチハイク
  • 全日本470 強風出艇からのリーチングハーバーバック
  • 台湾遠征 4番目のレース&ウミガメとの並走
  • AI学会 シロクマ美味しかった
  • 団体戦ラストレース5位フィニッシュ
  • TGS
  • 渋谷ファブラボWell-beingセッション
  • 長野 上高地奥穂高岳
  • 七帝戦 天橋立崖上り&フェリー一人乗り遅れ&ノーレース
  • 院試験合格

 上の方が先に出たので印象が強かったやつだと思います。なんやかんや全日本470が最高の思い出だったんだと思います。ヨット部素晴らしいですね。来年は青春18切符の旅と登山(槍かなやっぱり?)をやる予定です。ピアノは弾ける曲数を増やしたいですね。あと両手完璧に使えるようになりたいなぁ。あとネタですが小四喜をあがったことも結構記憶に残ってる(笑) 今年大三元あがってないわ、そういえば。あと小説投稿頑張ります。ネタはいっぱいあるので、形にします。そして学生の内に本出すという目標を達成します……したい。

そろそろ終わり

 僕の卒論テーマって実はモチベーションアップするテクノロジーなのかもしれないって最近思うようになってきました。無意識の内に動機付けをさせられたら、それはすなわちモチベーションアップって呼んでいいんじゃないか?って思ってます。来年はひとまず卒論主体で努力する予定。3月からは日本中旅する予定です。まだまだ世界が狭いという事をつくづく感じます。この気づきを常に得られたら、最高ですよね。

 

・おまけ

今年聞いた意識高い系ワード大賞

「最大公約数をどこで取るかって事なんだよね」

は?ってなりますよね、分かります。

 

・キーワード部門

可視化

単純な処方箋(はなくて~)

話の補助線

 

 

セーリングのコース理論(北風) その一

・南風(海風編)

安定したコンディションでのコース理論はこちら↓↓です.

 

 待ちに待ったセーリングコース理論陸風編をお送りします。とりあえず新西宮での勝利方法を書きますが、他の水域に応用する事もできると思います。何にせよレースごとに水域の傾向を見るのは当然なので、自分の知っている型に如何にして落とし込むのかが焦点になるという訳です。

Abstract

 まずH30卒松本氏の三角波での場合分けを思い出そう。基本的に陸に近い所でレースをする西宮では必ず陸ベン(ショアエフェクト)が起こる。この仕組みとパターンは全てウインドストラテジーに書いてあるので、ここぐらいちゃんと読んで欲しい。別に天気予報の気圧配置からブローの入り方が判るほど科学は進歩していないし(2018年12月現在)、六甲山脈の地形だとか西宮ハーバーの地形だとかは正直どうでも良い。そこに一般解を求めるよりもブローはランダムに発生し、統計処理を行った方が勝率が良いはず。

 前述通り、北風は南風のコースに比べて圧倒的にランダム性が高い。ブローが急に出てくる事もあるし、ブローのシフトにも法則性が見出せず死ぬ時がある。そもそもブローがちゃんと見えない時もある。こんなのどうするんだよ、ドラえもん

 再現性良く勝つ事が本ブログで目指す所であり、それはすなわちコースを科学的に捉えるという事だ。その為に必要なのが先行艇の状態だ。

・先行している艇のバウの向きは自艇と比べてどうか?

・先行している艇のクルーはトラピーズに出ているのか、デッキ内にいるのか?

 この2点をまず抑える。それはすなわちその風域の風速と風向を意味している。すると北風攻略でのポイントは実は1上よりも2上なのだ、という事がわかってくる。そろそろ本題に入ろうか。

 

1 ブローの使い方

 前記事「コース理論 南風*1」にて5度のリフトを走る事のメリットは述べた。そしてブローに入る事のメリットなど言わずもがな。基本的に見えるブローに入って、そのシフトに合わせてタックするかどうか判断する。では次のブローに向けてタックするとなった場合、ブローに入ってから何秒後にタックするのが最善なのか? 次のブローよりも今入っているブローの方が確実性が高いので、今のブローの恩恵を最大限受けてからタックするべきである。

下図を参照してほしい。

1.1 ブローの定義

 ブローというのは風圧が強い、いわゆる他の風域よりも風の密度が強い所である。要するに圧力が高いという事だ。この時エントロピーの法則から3次元的に球体の広がりをブローは見せる。実際は動いているので楕円形だが、今回は球とする。ヨットはz軸方向には動かないので2次元で考えるとブローは円と仮定する事ができる。

f:id:amakazeryu:20181130112951p:plain

図1:ブロー侵入時

1.2 ブロー侵入時の模式図

 半径rのブローに角度θ、速度vで侵入した様子である。ブロー自体は速度Vによって動いている。次にタックをした時を見て欲しい。

f:id:amakazeryu:20181130113049p:plain

図2:ブロー内タック時

 そして最後にブローから出る様子である。

f:id:amakazeryu:20181130113126p:plain

図3:ブロー脱出時

問題はmax:tを求めるという事である。

1.3 ブロー滞在時間を求める

 まずt秒後の艇の位置を求めよう。この時艇は剛体ではなく、質点と捉える。艇は45度で進行するので、そのy軸成分とx軸成分はv*cos(45deg)である。t秒後のブロー外周円上までの距離をdis_ydis_xとすると下図のように考えれば、

f:id:amakazeryu:20181130113214p:plain

図4:t秒後の位置関係

 上図を参考にすれば、数式1のように簡単に求まる。

f:id:amakazeryu:20181130121051p:plain

数式1:t秒後の外周との距離(y軸方向)

dis_xも同様に考えれば、

f:id:amakazeryu:20181130121138p:plain

数式2:t秒後の外周との距離(x軸方向)


 と求まる。ブローはy軸方向にしか動かないので、dis_xの方が若干式が簡単になる。タックを返した時はdis_xのルートの中の絶対値項のvt/{\sqrt{2}}のプラスマイナスが反転するだけだ。条件は今整った。

  • dis_x \leq 0
  • dis_y \leq 0
  • max:t

1.4 いつタックするとどれだけブローに滞在できるのか

 ここでは問題が複雑になるのを我慢して、いつタックすればよいのか、という問題を考えていこう。タックした時刻t_i、求めるtの最大値をt_{max}なのでdis_ydis_x=0は、

f:id:amakazeryu:20181130121819p:plain

数式3:タックする条件を含めたもの(y)

f:id:amakazeryu:20181130144910p:plain

数式4:タックする場合の条件を含めたもの(x)

 という風になる。dis_y=0dis_x=0となる時にブローから出るので、条件通り

  • dis_x \leq 0
  • dis_y \leq 0

 から曲線と範囲を図示すればよい。
 これをt{max}に関して代数的に解くことはかなり大変なので、ここから具体的数値を入れて曲線を書いていこう。

1.5 具体的に問題を解いてみる

1.5.1 真下から侵入時

例えばブローの大きさr=50[m]、ブローの移動速度V=8[m]、進入角度0、ヨットのスピードv=3[m/sとした場合、下図のようになるわけだ。

f:id:amakazeryu:20181129130814p:plain

図4:ブロー真下から侵入

 

具体的に数値を当てた数式は

f:id:amakazeryu:20181130145614p:plain

具体例(yの条件)

f:id:amakazeryu:20181130145702p:plain

具体例(xの条件)

t_{max}をyとして、t_{i}をxとした。

青色がyの条件、赤色がxの条件である。

f:id:amakazeryu:20181130145811j:plain

曲線1:8mコンディション、50mのブロー

黒の部分が両方の条件を満たす場所である。
するとブローに入ってから6秒ほどが丁度タックの頃合いという事が判る。

1.5.2 45度方向から侵入時

次にタックに入る角度が45度の時を考えよう。これは自分の先行艇がブローに入った時をイメージすればいいだろう。

 

f:id:amakazeryu:20181129133915p:plain

丁度前の艇がブローに入った時

 この時曲線は下図のようになる。関数は数式4にθ=45度とすれば導出可能である。

f:id:amakazeryu:20181130150233j:plain

曲線2:8mコンディション、50mのブロー(45度侵入)

これはt_{max} \leq t_{i}の部分が最善値なので、要するにブローを抜けるまでタックする必要はないという事だ(y<xじゃないと現実に起こりえないという事)。

1.5.3 上艇がブローに入っている時

最後に自分より風上にある艇が入った時を考える。

f:id:amakazeryu:20181130151223p:plain

風上側のブローに入る

この時曲線は、

 

f:id:amakazeryu:20181130152006j:plain

曲線1:8mコンディション、50mのブロー(-45度侵入)

黄色がy=xの直線なので、当然の如く即タックがいい。

まとめると6~8m/sコンディションでは、50mほどのブローに入る際、

  • ちゃんと真正面から受けたら6秒後にタックすると10秒間ブローに入る。
  • 先行艇に遅れて入ったケースだとタックせず直進
  • 後ろ上側が入ったら即タック

という事が判った。

風が強くなればこの秒数は全体的に短くなるし、弱くなれば大きくなる事は言うまでもなかろう。

真下からブローに入った時にいつタックすればよいのか、という事を表にまとめるので、少し待って頂きたい。

 

ここに表が出ます。

 

特に風が弱いコンディションならば次のブローが見えない場合はこの手法を採用するとかなり良いはずだ。実際弱いコンディションで度々タックをする上位艇は記憶にあるはずだ。彼らは直感的にそれを知っているのだと思う。

 

今日は疲れたのでここでいったん終わるが、次回はオーディナルスケールによる統計的勝利方法を紹介する。乞うご期待。

 

(色々おかしい所があるので、また直します。11月30日現在)

 

次回予告

 ヨットは帆走時間ではなく着順によって点数が付けられる。ゴールするまでの帆走時間をその人の実力とするならば、実力通りの点数差が出る事はほとんどない。自分がゴールした一分後に入ってきた一つ後ろの艇と自分と僅差でゴールした一つ後ろの艇との実力差は本当に同じ1点か? 答えはNOである。このように時間という基数ではなく、順番という序数のスケールで点数付けをするのがヨットなのだ。

 (そう設計したのは君だろう? 茅場)

470の走らせ方 理論と実践

 故増山氏の遺作となった「翔べ! 470」*1に記載された内容を理解し実践している人は未だそれ程多くないと思う。二次試験物理8割(自慢)の学生引退セーラーが理論からどのように実践に繋げたか、軽く述べてみようと思う。

 ヨットはボートスピードで勝敗が決するといっていいほど、ボートスピードが大きな勝因になる風域が多い。ではそのボートスピードをいかにして出すのか。人間は場合分けした方が理解しやすい生き物なので、風域を大雑把に分けてそれぞれで解説していく。


・オーバーパワーのクローズ

真っ先に磨きたい風域だが焦らず三段階ぐらいでレベルアップしよう。

一段階:ヒールキープ・メイントリム量少なめ。テルテールを常に流す意識でメイントリムの量は少なくなるように心掛けよう。常にヒールを一定にする気持ちが大切だ。チームで一番下で走ってもリーフェイして離れていかなくなれば、次の段階に移行しよう。

二段階:ブローでベアしてメインを出し、加速したタイミングで素早くメインを引き込みながらラフすることを基本とする。ラルでは逆にメインを少し詰めてスピードが落ち始めたらそれに合わせてベアしながらメインを出す。ブローはないけどスピードがなくなったら、メインをパンピング気味に引き込んでフルハイク・フルトラピーズでベアすればセミレーニングしやすい(パンピングベアと呼ぶ)。スピードを維持できるようになったらセンターを上げられる。センターを上げたらウェザーが減る。スピードがなくなるとリーフェイするので、センターを上げたらもう後はスピードを切らさないことに専念する。また20度までのヒールならば許容できる。艇はヒールした方が復元モーメントを稼げるしよりメインが引けている。基本的にヒール0~10度ぐらいで走り、スピードがなくなればパンピングベアして20度ぐらいまでのヒールを許容しつつスピードを出すイメージ。20度までならヒールはメインを出さずにボディロッキングで起こした方が良い。6ノット以下のスピードになれば相対風向・センター有効面積・ヘルム・ヒール、すべてが破綻する。

三段階:スピードがある状態で少し角度を稼ぐ気持ちを持つ。スピードが切れる前に必ずベアする。これとは別にピンチングとドライブの使い分けをできるようになり、スタート・マーク際でクローズの有利なポジションを得る方法を手に入れること。

 

・ジャスト付近クローズ

 基本的にメインは出さないこと。出さずに反対デッキが海面に近づくぐらいまではヒールを許容し、ボディアクションで起こした方がいい。クルーヘルムスで同時にロックすれば上れる。したがって8ノットまではきっちり起こせるように体重をつけよう。オスカー旗が上がればボディロッキングとパンピングベアをすればいい。スピードがなくなればパンピングベア。ロメオポジティブなら単にベア。

 

・アンダークローズ

当たり前だが船を揺らさないことと水線長を沈めるように前乗り(470のナックル上側が沈むところまで)。キープフラット・ニュートラルヘルムが理想。そのようにチューニングとヒールトリムをしよう。スピードがなくなればメインを若干緩めてベアしよう。

 

・中デッキクローズ

メインを流す事と角度に注力。スピードがなくなればオーバーヒールをつけてセールシェイプを保ち、起こしながらワンロック入れよう。フラット意識だがスピードがなくなりやパワーが切れがちなので(艇のエネルギーが小さくなるので)、オーバーヒールがほかの風域よりも多くなりがちである。メインはツイストさせよう。

 

・ロメオ下ランニング

ラフベアは必ずヒールをつけてロックを入れるキネティクスをしよう。吹かれた事はない。過度にすると目を付けられる。波・ブローでもキネティクスをガンガン入れよう。マストトップにアングルマーキングをつけ、波のないコンディションならばトップの風見130~140度(相対風向)まで上る。

 

・オスカー下ランニング

トップ風見150度まで上れ。波が来たらオーバーヒールになるので、アンヒールまで起こしてパンピングベアすればサーフィングできる。基本上ってスピードがある状態を維持し、波で一気に角度を稼ぐイメージでいけばいい。これができれば20位以下は取らなくなる。西宮の汚い波は全て突っ切った方が早いので突っ切れるまで上った方が良い。逆に綺麗な波の海面では一つ一つ丁寧にサーフィングしていった方が良い。

ピンパンピングのコツは風の塊を持ってくる感じだ。上下同じくらい引いてパンピングの抗力を正面方向に出す事。パンピングの引き具合が運動視差にそのまま化ける具合だと最高だ。

 

・オスカー下リーチング

ラフすればオーバーヒールと共にスピードが手に入る。ラフしてプレーニングをするならばラフベアを繰り返しながら合わせてメイントリム。大事なのはラフ後ヒールが大きく入る前にベアすること。メインを見て合わせるのではなく、当て推量で引き具合を調整すること。ティラーとメインを必ず同時に動かすことだ。それによって常にプレーニングをキープする。クルーもそれを理解してスピントリム、ベアの時に出してラフの時に引く。ブローでは即ベア、メイン出し、スピン出し→スピードUPと共に両方シートを引き込む。プレーニングに入らないならクルーは前へいき、ラフかブローでプレーニングできるなら後ろにいく。

 

・ロメオ下リーチング

ティラーは極力使わず静かにスピードをつける事を意識する。トラベラーをがん引きしてツイストさせ、ジヴ・スピンの裏風を活用する。メインはシバーする手前まで引き込み、分からなくなれば風見に平行まで出す(風見平行はたいていちょっとシバーするぐらい)。ジヴもスロットルを意識して出す。キープフラット、ヘルムはセンターで調節が理想的である。スピンのリーが強すぎるならオーバーヒールをつけよう。


・タック:ティラーの突き始めから終わりまでをくらいの速さで。最初は遅く、後になるにつれて早くが理想。当然ラフ中はメインを引き込み、タック中はベアを急ぐ。

・ジャイブ:ロメオ下ぐらいの風なら煽りましょう。ブームが返ったらすぐスピンポールを入れ替えられるようにヘルムスはスピンシートを持ちましょう。まだできてないよね阪大。ジャイブを打ちたくなるくらいまで動作練習しよう。

 

練習で磨くのはスピード感覚だ。今早いのか遅いのか常にクルーヘルムスで言い合った方が練習効率は上がる。

(また多分更新します)

組織論

 人間はポリス的動物であると古代の哲人は言った。人は集団で生きる動物であり、それは子孫繫栄や利潤という点のみならず、人々の幸福感にまで相関があるのだという事が近年明らかになってきた。幸福のクラスター化といって、小さな集団でみると幸福な人の周りには幸福な人が多く、共感は伝染していくという事が分かっている*1。幸せは身近に伝染していくのだ。そして集団であれば感じられる幸福感も高まりやすいという事も言われている。

 しかし集団は孤立を生む。孤立というのは一人でいることではなく、集団の中で外れる事である。集団がなければ孤立はない。加えて資本主義下の企業や旧態依然の体育会系組織では組織力学を以て強制的な統制が行われている事も少なくない。上からの圧力によって強制的な統制をしても心は一つにならない。論理的に間違いであるとしても組織をまとめる為に権力を行使する場面は出てしまう。そしてその強制が構成員の不満を生み出し、個人レベルの不幸が溜まってしまう事がある。

 以上のように組織とは分業によって大きな仕事ができたり幸福感の増加といった良い面の反対に無意識も含めた孤立や権力の乱暴が度々起こってしまう。これらの問題に対して組織とはどうあるべきかという組織論を組み立て、これらの諸問題に対して一定の解決策を述べてみようと思う。

 

1 Well-beingとは

 ミクロ哲学に於いて幸福は個人の中で閉じた概念である。個々人が全員自分の中で幸福感を感じる事が出来れば、各々は人生を満足して終わる事が出来る。この哲学の中では諸個人の価値とは如何にその個人が幸福感を得ているのかに由来する。対してマクロ哲学においては集団の幸福度が優先される。集団全体の幸福度上昇が結果として個人の幸福度に直結するという考え方である。集団の価値とは集団に属する個人の幸福度の総和となる。社会を構築する上でマクロ哲学的思考を持つ事は非常に都合がいい。筆者自身も哲学を語る時にどちらの考え方になるのかは場合によって分ける必要があると考えている。

 筆者が見てきた多くの人は自分の為に果たして生きているのかと思う事がある。常に周りや組織の為にといって自分を殺している事はないだろうか。そして高度経済成長期から続く日本人の自分より集団を優先する心理への美徳感は国民性とまで言っていいかもしれない。しかし忘れてはいけないのが社会など存在しないという事だ。みんなというのは概念に過ぎない。英語なら単数形。あなたは概念の為に生きているのか、と問いたい。きっとそうではないはずで、多くの人は自身や大切な人の為に生きていると思う。それがどういうわけか時折見せる「社会の為に」「みんなの事を」「チームの為に」という風に言われてしまう*2

 ここで一つ問いたい。それは本当にその組織に属する各人の幸せになっているのか、と。

 

2 組織の存在意義 

 基本的に組織の存在意義とは分業・集団による生産性の向上と共感による幸福感の獲得にある。一人ではできない事も多人数になればできるという事は多くある。そしてその組織のOB・OGの支援もまた大きな力になる。加えて身近に人がいる事によるモチベーション維持など教育的効果も挙げられる。そして何より他人と分かち合う勝利や成功は格別であるというのは言うまでもない。かくいう筆者もクラブに属してからそれらのメリットは大いに感じてきた。

 だが最近になって形作りを重視する統制やモチベーションケアの放棄などにより退部者も増えてきた。人数が増えると集団の中に集団が生まれる。必ず一つになり切れない人数上限が組織には存在するのだ。集団の中にまたいくつかの集団が生まれた時、問題となるのは自分達中心主義だ。彼らはいつも自分達こそ皆の為にやっており、少数の集団は皆の為に動いてほしいという考え方だ。僕は幼少期にこの内輪の外にいた。そこでは自分達というマジョリティの安心感と正義感の下、孤立した人が悪いという価値観があった。

 正義詰まる所自分達が正しいと感情的に判断する事は大きな間違いである。なぜなら正誤という概念は常に論理の中で閉じており、感情的に正誤を語ってもただの感情であり常にその正誤は不安定である。不安定なものを正しいかどうかの土俵にあげても議論が平行線になるだけである。自分達が正義という考えが感情によって生み出された時、人は争いを生んでしまう。その結果が世界大戦を始めとした戦争の悲劇を生んでしまった。筆者は戦争によって哀しみと憎しみに世界が埋もれる事を否定する立場である。故に論理外の中で正しい・正しくないという概念を持つ事は反対であるし、そもそも変動しがちな真理値を持つ判断は論理学上否定されるものだと考えている。

  なぜ少数側が悪いのか。そこに論理性は存在しない。集団を一つにする為に強制的な統制を行ってしまえばむしろ心はバラバラになってしまい、個人の幸福感も低下してしまう。例えば自分達は最後の大会が終わっているにも関わらず、もう一つの同期のチームは次の大会に進出したので、自分達もまだ現役続行だと言われたとする。引退の定義は確かに都合よく定義され得るが、

スポーツの世界において引退というのは選手としての身分を離れる事である。

 選手とはつまり試合に出る人である。もう試合に出る可能性がゼロになった者を引退したといい、それゆえの引退試合であり、これが論理的な解答である。理論的には最後の大会終了と同時に心は現役引退であるにも関わらず、組織統一の名目の下、身体は現役続行となる。心と体の捻じれ状態の中、組織力学によって強制を行ってしまうと当然不幸感を覚えてしまう。とはいえ組織として統一感を出す事は不可欠である。この問題に対してどのように解決をすれば良いのか。ここが非常に重要であり、多くの人を悩ませる点である。個人の不幸をなるべく回避しながら論理的矛盾を孕む組織統一を如何にして行うのか。筆者は一つの解決策を本日持ってきた。

 

3 無意識な内の統一

 日本にいて税金の使われ方にキレたから日本を出ていく、という人は少ない。実際BTCで億り人になった人が海外逃亡したが、多くの人は怒っていない。なぜか、知らないからである。無知は幸せとはよく言ったもので、知らなければ人は怒る事などできない。舛添氏の問題も似たような事は他の人がいくらでも行っていたが、メディアに出ず周知されなければ問題にはならない。問題は問題にあがらない限り問題にはならない。

 科学的な刺激方法にサブリミナルなやり方がある。サブリミナルコマーシャルというのが有名でTVcmのコンマオーダーの秒数異なる映像を一瞬はさみ、視聴者はその画像を認知できないにも関わらず広告の効果が強まるという手法がある。選挙などで何度も名前を連呼していると聞いていないにも関わらず脳内に記憶されて選挙に影響がでるという事がある。「カルピー、ポテトチップス!」という文字を見れば否が応でもリズムが思い出される。そういった非意識下で人は実は多くの判断を行っている*3

 ここでいう解決とは無意識な統制を執る事によって構成員の幸福の担保を図りつつ、実際には組織をまとめるという事だ。意識できなければ不幸を感じる事はない。秘密保護法も後世でどのような評価を受けるか分からないが、個人的には良い印象を持っている。無知に幸せを受けられるのであればそれはミクロ哲学において良い事だからである。そして組織統一においても大切な事は無意識な統制をしていく事である。

 サブリミナルな情報提示はスプラリミナルな情報提示に対してストレス指数を低く保ったまま、効果をあげる事が確認されている*4。うわさや本人の意図によって情報を得た時と上から強制的に伝えられた情報とではストレス指数に大きな差があるだろうという事は経験的にも分かる。強制的な統制はされる側が強制と感じた瞬間不幸を生んでしまう。加えて上記の例のように論理的整合性が取れない事もしばしばある。この時大切なのはその点に関して統制する対象を無意識にさせる事である。そうすればファジーなまま時間が消化される。逆に論理的矛盾を含んだまま明らかな強制をしてしまうと不幸感と心身の捻じれを発生させてしまう。

 権力を持つ者は無意識なうちの統治という手法も覚えておくといいだろう。そして常に構成員に(自分が支払う対価)=<(自分が受ける報酬)という状態を維持する事である。報酬は常に利潤のみならず幸福感も含まれる。そして対価とは疲労や時間も含まれる。これが組織運営に役立つことを祈るばかりである。

*1:ヒト社会における大規模協力の礎としての共感性の役割 村田藍子

*2:なぜ世界は存在しないのか Markus Gabriel 2018

*3:サブリミナル・マインド 下條信輔

*4:意思決定における精神的作業負荷を軽減する情報提示手法 水上