大事なことしか話さない

学んだことの備忘録 CFA/株/投資/証券アナリスト等

numpy.clipとinvalid value encountered in double_scalars

(参考:numpy.clip — NumPy v1.14 Manual

機械学習でsigmoid関数の計算をしていたら

RuntimeWarning: invalid value encountered in double_scalars

RuntimeWarning: divide by zero encountered in log

この2つのエラーが出てきた

解決策:

numpy.clipをして極端な値の出現を抑える。

つまりsigmoidの式を

def sigmoid(x):
    return 1.0 / (1.0 + np.exp(-(np.clip(x, -10, 10))))

こんな感じにすれば解決した。  

何が起こっていたか:

そもそも下の式で表せられるシグモイド関数はxにどんな値を入れようがyは0,または1にはならない。

 { \displaystyle y = \frac{1}{1 + e^{-ax}}}

f:id:bnbnp:20180715165220p:plain

しかし、pythonでは最大桁数が定められているので、sigmoidの式xの値に大きかったり(10000とか)、小さかったりする値を入れてしまうと(本当は0.99999とか、0.00000001とかいう値が欲しいのにもかかわらず)本来は帰ってくるはずのない1.0とか、0.0とかいう値が帰ってきてしまう。

1.0 / (1.0 + np.exp(-50)) # 1.0

これはnumpy.clipで防げる。例えば、xに10という上限、-10という下限を設ければいい。

numpy.clip(114514, -10, 10)  # => 10

numpy.clip(-810931, -10, 10) # => -10

1.0 / (1.0 + numpy.exp(-810)) # => 1.0 <= 良くない!

1.0 / (1.0 + numpy.exp(-(numpy.clip(810, -10, 10)))) # => 0.9999546 <= 嬉しい!

無関心主義

人生を豊かにする無関心主義を推し進めていこうと思う。

  • 芸能ニュースを見ない
  • 人の成功に一喜一憂しない(ワールドカップやオリンピックは見ない)
  • 選挙には行かない。大事なのは選挙結果とマクロ経済だけ
  • しょうもない個人の犯罪に関するニュースは見ない。誰が誰を殺したところで自分には何も関係ない
  • トレンドを追い求めない
  • 噂話はしない
  • 制度改革を求めず、自分がその制度でどう立ち回るかを考える。例えば年金制度に文句を言っても無駄で、いかに沈みかけの泥舟から抜け出すかを考える

 

無駄な時間を減らせば自己実現、社会貢献にさらに時間を使う事が出来る。

自分でコントロールできる世界に生きるのが豊かに生きるコツだ。

カテゴリー分類/クラス分けアルゴリズム比較 (Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?)

http://jmlr.org/papers/volume15/delgado14a/delgado14a.pdf

この論文より要約

 

179ものアルゴリズムを比較したすごい論文

結論はランダムフォレストが一番いいパフォーマンスを出す、とのことらしい

比較したアルゴリズム(大きいカテゴリー):

  1. Discriminant Analysis (判別分析)
  2. ベイズ
  3. ニューラルネットワーク
    • extreme learning machine等
  4. SVM系(サポートベクターマシン)
  5. 決定木系(Decision Trees)
    • C4.5等
  6. ルールベース
    • 決定木と似てる
  7. Boosting
  8. Generalized Linear Models
  9. 近傍法(Nearest neighbor methods)
  10. Logistic and multinomial regression

ニューラルネットワークなどある中、なんだかんだランダムフォレストが良い

時点で良いのはSVM

キルケゴールとモルモン教

キルケゴールという昔のエラいキリスト系宗教学者・哲学者の説いた「人間の実存」には3段階ある

上の段階に行くほど真の人間性に近づけるらしい

1つ目...「美的存在の段階」(aesthetic sphere)

自分の欲求にあるがまま従う段階

最初はみんなここから始まるが、一瞬の享楽を求めている間は永遠に満たされることはない

 

2つ目...「倫理的実存の段階」(ethical sphere)

1つ目の段階で満たされないと知った人間がここに行き着く

ここでは良心に従って人助け等をしながら生きようとするがいくら努力しても理想の人間にはなれず挫折してしまう

 

3つ目... 「宗教的実存の段階」(religious sphere)

人間は宗教的実存となってのみ、本物の人間性を獲得することができる

ここでは実社会との関わりを断ち自分と神との関係性を築かなければいけない

息子を生贄に捧げることを決心したアブラハムがこの最たる例だろう

神様を媒体として隣人を愛することでのみ人は本来の人間性を獲得することができる

 

ところで、モルモン教には3つの天国があることをご存知だろうか

1つめの天国は現世で悪いことをした人たちが行く天国だ

例えばヒトラーはこの天国に行くと考えられている

この天国は↑でいう美的存在に留まってしまった人達が行く天国だと解釈することができる

 

2つ目の天国は現世で人に施し、良いことをした人たちが行く天国だ

ダライ・ラマガンジーなどはこの天国に行くのであろう

これは倫理的実存にいる人々が行く天国だと考えられる

 

3つ目の天国は敬虔なモルモン教徒のみが行くことができる

この天国において、モルモン教徒は宇宙をも創造することが出来る

これは、キルケゴールの言う宗教的実存に到達した人間と非常に似ている

神との関係なくしては、人は真の人間性を獲得することは不可能だ

 

宗教の勉強をしていて面白いのはこのように点と点が繋がる体験だと自分は思う

 

http://kukita05.seesaa.net/article/235294570.html
https://morumonkyo.jp/ライフスタイル/5つのモルモン教の信条/
http://mormoninquiry.typepad.com/mormon_inquiry/2004/05/kirkegaard_and_.html

人生の軸

  • その場で楽しく過ごす為に生きるのではなく、死ぬ時に生きててよかったと思える為に生きる
  • 睡運瞑菜+良質な人間関係に常に投資する
  • 英語力+統計力+entrepreneurshipを兼ね備えた人間になる
  • 友人の平均が自分。常に良質な人間関係を心がける
  • 調子に乗らない。調子に乗れば失言をするし、いいことが続いた後は必ず悪いことがある