ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

オリンピック、マラソンはパラリンピックの後にやれば、よくね?

2019-10-31 08:34:36 | そのほか
11月とかでも・・・別に夏にまとめてやらなくても、
1年を通じて、いつかやれば、よくね?

朝早くするのは限界があるし(夜明け前の真っ暗な時から走るのは・・)

札幌にしてしまうと、
東京は暑いからX→東京より南はもっと暑いからX
ということになり、今後オリンピックは東南アジアやアフリカでは開催できなくなり、
地球温暖化で開催できる国がすくなくなっていき、
挙句の果てには、南極でペンギンと一緒にマラソン、白くまと一緒にレスリング
とかになってしまう・・・・(それはない?)

P.S もし札幌に移して、マラソン当日、
東京の気温より札幌の気温のほうが暑かったら、ど~するんだろう・・・
札幌も、最近は結構暑いぞ!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

からあげクン、宇宙食へ

2019-10-30 01:00:02 | そのほか
まだそうじゃないみたいだけど・・・
からあげクン、サクッと打ちあげ?プレ宇宙日本食に認定
https://www.msn.com/ja-jp/news/techandscience/からあげクン、サクッと打ちあげ%ef%bc%9fプレ宇宙日本食に認定/ar-AAJvXRx

・・・でも、一般には売らないみたいよ・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

八ッ場ダムは必要。

2019-10-29 01:30:34 | そのほか
いらないとか言ってた政権、なかったっけ?

台風19号から利根川・荒川流域の鉄道を救った ダムと遊水地の大きな効果
https://www.msn.com/ja-jp/news/national/台風19号から利根川・荒川流域の鉄道を救った-ダムと遊水地の大きな効果/ar-AAJs0C2

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

流体力学を有限要素法で・・・

2019-10-28 09:08:13 | Weblog
というのを

FreeFem++とPythonで実装する偏微分方程式ハンズオン #2【流体力学編】
https://liberal-arts-beginners.connpass.com/event/151647/

で、教わってきたはずだが、よくわかっていない。とりあえずメモ




流体力学入門
・固体:変形しにくい
・液体・気体:変形しやすい→流体
・流体力学:流体の運動の性質について調べる分野
 →流体は物質で満たされた場:偏微分方程式で解く
・流体の運動方程式
 解析計算が極めて困難
 有限要素法による解

今井功「流体力学」

非圧縮性流体
・非圧縮性流体:圧力をかけても体積が変化しない流体。数学的には∇u=0
・Newton流体:船団変形と応力が比例。数学的にはσ=2ηD(u)-PI

応力テンソル:でびえーたー
 Dev(σ):=σー1/3tr(σ)I
 →σ=Dev(σ)+1/3tr(σ)
            -Pと表す
非圧縮性Newton流体の方程式
→Navie-Stokes方程式
・圧力について
 一意に決まらない→条件つける
  平均0、ぺなりてぃほうなど

流れ関数:流れの可視化に使う。非圧縮流体で出てくる

Couette(くえっと)ながれ
→テイラー図
層流→乱流へ

Reynoldsを見ると流体の振る舞いがある程度わかる
Re<40層流
40<Re<1000 カルマン渦
Re>1000 乱流



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

『避難訓練コンサート』!

2019-10-27 23:27:42 | そのほか
コンサート中に避難訓練!!

杉並公会堂 × 荻窪消防署 『避難訓練コンサート』
http://www.suginamikoukaidou.com/event/1174/

(以下太字は上記サイトより引用)

防災の秋、杉並公会堂は荻窪消防署との協力企画として、2013年、2015年、2017年に続き4度目の「避難訓練コンサート」を実施します。このイベントは、コンサート本番中の災害を想定し、お客様に実際に避難していただく、ホールを会場とした「避難訓練」です。コンサート中に演奏を一時中断し、ホールスタッフの誘導でお客様に避難していただきました後、再び演奏をお楽しみいただきます。

もう、すでに3回もやっているんですか(@_@)
実際の震災の場合、非難の後は演奏どころじゃないだろうけど(^_^)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

台風の避難訓練って、してないよね・・・

2019-10-25 00:51:12 | Weblog
地震の避難訓練があったんだけど、
これ、台風の時には使えないなあ・・・と
目の前が川なのに、外に避難するんです・・・

地震と台風は避難訓練、分けたほうがいいよね。
そして台風の避難訓練も、しないとやばいよね・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

FreeFEMを使って、有限要素法で偏微分方程式を解く方法を

2019-10-23 09:09:25 | Weblog
聞いてきた

FreeFem++とPythonで実装する偏微分方程式ハンズオン #1 【有限要素法編】
https://liberal-arts-beginners.connpass.com/event/142760/

んだけど、難しい話のわりに、肝心なことが書いてなかったので、
メモしておかないと忘れてしまいそうなので、メモメモ




・偏微分方程式を数値的に解く方法として有限要素法がある
・有限要素法を行うフリーソフトに「FreeFEMがある
・FreeFEMを使って図を書くこともできるし
 CSVファイルに結果を書きだし、
 そのCSVファイルを読み込んでPythonで描きだすこともできる
  →今回はこちらを実行

<<有限要素法を行って図に書き出すには>>

【事前準備】
・FreeFEMのインストール
 ここ https://freefem.org/ Downloadをクリック

【手順】
・有限要素法を行うファイルの作成(拡張子.edp)
  →内容は後述

・FreeFEMを起動する
 →ファイル名を聞いてくるので、上記で作成した.edpファイルを
  指定する
 →CSVファイルができる

・CSVファイルをPython等で表示する。

【ファイルの書き方】
※講義の中で言っていた「手順」とは、このファイルの書き方らしい
 講義の手順と対応して書いている(同じこと書いてもわからないと
 思うので、書き換えている)

・手順1:境界を書き、その中を差三角形に分解する
  →境界を式で指定、 buildmeshで分割数を指定すれば、
   自動的に参画分列が所得できる。

・手順2:分解した三角形を近似する
  →fespace Vh(Th, P1);の第二引数で指定、P1は一次関数、P2は二次関数
  →基底関数という

・手順3:行列方程式を解く
  →problemで弱形式で対象を規定すれば
  あとは係数行列にして、行列方程式を解くところは
  FreeFEMがやってくれる。

※具体的なソースコードは、https://freefem.org/をスクロールすると
 でてくる(立方体が回っている横)

<<参考サイト(講義では紹介してなかったけど・・・)>>
FreeFem++の紹介
https://qiita.com/t_kemmochi/items/418bdc55e4937381711e

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Pythonで最短距離を求める

2019-10-22 09:40:39 | ネットワーク
方法を

じっくり理解するグラフ理論・ネットワーク分析の仕組みの解説とハンズオン
https://liberal-arts-beginners.connpass.com/event/149327/

で教わってきたので、成果披露。

networkxを使う。こんなかんじ

##########################################
#   例
##########################################
G=nx.DiGraph()

#各ノード、エッジ定義(距離と価格2つの値を持てる)
G.add_edge(1,2,distance=100,cost=100)
G.add_edge(2,3,distance=150,cost=100)
G.add_edge(1,3,distance=220,cost=300)

#グラフを書く
nx.draw_networkx(G)
plt.show()

#距離で最短を求める
result=nx.shortest_path(G,1,weight='distance')
print(result)

#運賃が最安値を求める
resultnx.shortest_path(G,1,weight='cost')
print(result)



結果はこんなかんじ


なお、講義ではやってなかったけど、
最短距離はダイクストラ法が有名。ダイクストラ法の場合は
shortest_pathの代わりに

all_pairs_dijkstra_path_length
とかを用いる。

https://showa-yojyo.github.io/notebook/python-networkx/shortest-path.html


参照。dijkstra_path(G, source, target[, weight])とかの使い方は
Shortest Paths
https://networkx.github.io/documentation/networkx-2.2/reference/algorithms/shortest_paths.html

にある。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

XGBoostは、だいたいこんな感じらしい

2019-10-21 08:55:14 | ネットワーク
XGBoostの原論文を完全に理解する
https://ml-for-experts.connpass.com/event/144710/
を聞いて、だいたいこんな感じ?というのをメモ




【論文概観】

・提案する手法
1.欠損データ、重み付き分位点の算出の高速化→ 3章で説明
2.勾配情報のプリフェッチ、ブロック圧縮、断片化→ 4章で説明

・2章
 ロス関数→テイラー展開による近似
 特徴量をランダムサンプリング:Column Subsampling

・3章
 分割点探索
 重み付き分位点の算出→高速化

・4章
 CSCによる行列データ圧縮
 勾配情報のプリフェッチ
 ブロック圧縮、断片化


【詳細】
●2章
決定木(CART)
・CART→2分される
・ノード:根ノード 葉ノード 末端 
   分割すべき変数
   分割する場所
   木の形(深さやリーフの数)
   各リーフの値

ロス関数、正則化項
・一般のツリーブースティング
 外れた部分(残差)をまた別の木で近似して…という形で
 additive mannerで訓練する.
  ↓
・XGBoost
→2次の項までのテイラー展開する
  Ω(ft)が最小値となるWを求める
 →gとhの情報を持っていれば、wが計算できる

木の成長(学習方法)
・グリーティ・アルゴリズム

過学習を防ぐ
・シュリンケージ:イテレーションが増えるごとにηをかける
 →勾配法で学習率を小さくしている手法と同じアイデア
・コラム サブサンプリング:特徴量をサンプリングする

●3章
・分割候補点をどう決めるか
 単純にグリーディーでやると大変
 →各特徴量をパーセンタイル点で区切り、
  各パーセンタイル点を分割候補店として探索する
  →パーセンタイル点で区切る方法:
   treeごと(=全体で1回)global
   splitごと(分岐したごとにやり直し) local

・重み付き分位点の採用
 →単純にパーセンタイル点で区切るのではなく、二次偏微分の値で
  重み付けする
  ※ロス関数をiについてまとめると。hiの重みが付いているので
     ↓
 重み付き分位点の高速化(Weighted Quantile Sketch)
  分割候補点を求める方法
   ソートする→パーセンタイルを求める
    →ソートに時間がかかる
  ソートの工夫
   マージオペレーション
   →集合をマージしても誤差はそれほど変わらない
   プルーン(prune)オペレーション
ランクdとサマリーQを指定すると、近いものを返す
 Query Functionを定義
   →データをb+1個まで減らしたとき、approxination errorはε+1/b
    で抑えられる

・欠損データの取り扱い
 あらかじめ、木のどちらに行くか決めておく
  右に行く、左に行くと決めて、よいほうをとる


●4章(を5分で)
・読めばわかる
・CSC:ソートの計算コストの削減
 行列を3つのベクトルで表現する
   非0要素の位置と値をベクトル化

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「OSC2019 Tokyo/Fall」セミナープログラム公開と参加登録開始だって!

2019-10-20 08:24:02 | Weblog
このメールは、転送、転載自由です。

ってことなので、受け取ったメール(の一部)をそのまま転載する。

====================================================================
「OSC2019 Tokyo/Fall」セミナープログラム公開と参加登録開始のご案内
====================================================================

 セミナープログラムの公開と参加登録の受付を開始しましたので、
 ご案内させていただきます。

 → https://www.ospn.jp/osc2019-fall/

 タイムテーブルをご覧いただき、参加希望セミナーへの事前登録をお願い
 します。

 オープンソースカンファレンスでは、様々なテーマのセミナーがすべて
 無料で聴講できます。セミナータイトルをクリックしていただくと、
 セミナーの概要、対象者、前提知識、カテゴリーなどが表示されます。

──────────────────────────────────

□■□ --【オープンソースカンファレンス2019 Tokyo/Fall】-- □■□

★セミナー参加登録受付中!⇒⇒⇒ https://www.ospn.jp/osc2019-fall/

◆日時:11月23日(土) 10:00-18:00(展示:11:00-17:30)
    11月24日(日) 10:00-17:30(展示:10:00-16:00)

◆入場:無料
◆会場:明星大学 日野キャンパス 28号館 2F(OSC受付)
◆主催:オープンソースカンファレンス実行委員会
◆内容:オープンソース関連の最新情報提供 (展示・セミナー)
◆twitterハッシュタグ:#osc19tk OSCアカウント @OSC_official

= 前回の開催レポート =
→ https://www.ospn.jp/press/20181119osc2018-tokyofall-report.html

──────────────────────────────────


登録しなきゃ!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最先端のスパコンで1万年かかる問題を瞬時に解く実験に成功した・・・

2019-10-19 14:58:21 | ネットワーク
・・・もようだ。」って、成功したの?(昔から、これができれば・・・の話はあったけど・・)

「超計算」人類の手中に グーグル実証か
https://www.nikkei.com/article/DGXMZO51143200Y9A011C1MM8000/




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

”おっぱい丸出し”で日光浴するフランス人女性減少

2019-10-19 02:11:32 | そのほか
具体的には、こんなかんじ

今回の調査でトップレスになると答えた50歳未満のフランス人女性は、20%を下回った。10年前の調査では28%、1984年には43%がトップレスになると回答していた。

理由は

18~25歳の若い女性は、トップレスになりたくない最大の理由として、ハラスメントや体形批判、男性たちからいやらしい目つきで見られることなどを挙げた。

昔はいやらしい目つきで見なかったのでしょうか?
フランス人男性は素晴らしいです。
私は、1984年ごろから、今でも一貫して、おっぱい丸出しの女の人がいたら、いやらしい目つきでみてしまいます・・・修行が足りていません。

【引用元】
トップレスで日光浴するフランス人女性減少、その理由とは 調査
https://www.afpbb.com/articles/-/3236844

(太字は上記サイトより引用)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ベイズ推論についての基礎を聞いてきた!

2019-10-18 09:04:25 | Weblog
10月14日

【初心者向け】ベイズ推論の基礎理論とハンズオン
https://liberal-arts-beginners.connpass.com/event/149324/

を聞いてきた!メモ




・ネイマンピアソン→頻度主義:従来の統計

確率分布と尤度
・離散確率分布
事象の集合:{x1,x2....Xn}(Nは無限でもよい)の各元に対して
それぞれの値をとる確率
さいころP(X=1)=1/6

・連続確率分布
 確率変数Xが区間(a,b)に入る確率
b
  ∫f(x)dx
  a
 →これが尤度:大きいほうが良い

※確率変数:とる値に確率が与えられているもの。

条件付き確率
P(X=x|Y=y)
 →縦棒が出てきたらじょうけんつきかくりつ

ベイズ推論の枠組み
・ベイズの定理に従う
 P(X|Y)=P(Y|X)P(X)/P(Y)

 てもとにある観測結果Yという条件のもとに
 確率変数Xの分布

確率変数:とり値に確率が与えられている
 トライやるが多いほうがPの推定値を自信を持っていえそう

ベルヌーイ分布
・2つの事象の確率
表X=1 裏X=0
P(X|P)=P^X(1-P)^1-X

β分布
P(Θ|a,b)=1/Bata(a,b)Θ^(a-1)Θ^b-1
      =CΘ^(a-1)Θ^b-1
事前分布にβ分布を使う
P(X|P)=P^X(1-p)^1-X
β分布

P(X|P)P(P)==CP^5+a-1 (1-P)^5+B+q
= Beta(a+5、b+5)
無情報事前分布(a=1,B=1のとき)

15回やったほうが、尤度が高くなる
a,bは正ならばよい

100個のうち、5個赤、のこり青
1個取り出し、10回繰り返す。全部青

頻度主義
 赤が出る確率0

ベイズ
 ベルヌーイ分布をつかう
 全部青が出る確率
  (1-m)^10
 P(m)をm(1-m)に比例する形で選ぶ
  P(m)=Cm^a-1(1-m)^5+b-1
 事前分布を計算できる
  P(X|m)P(m)=(1-m)^10 C m^a-1 (1-m)+b-1
  Cm^a-1 (1-m)10+b+1
  =Beta(m|a,10+b) a=1,b

→これをもとにする:ベイズ更新
  
線形回帰モデル
 t=ax+b+ε
 εは誤差項:ガウス分布に従う→P(ε)=N(0、σ^2)
 ε=t-ax+b
 N(0、σ^2)=1/√(2πσ^2) exp ( - ε^2 / 2σ^2)
 =C exp(-1/(2σ^2)(t-ax-b)^2)
 =N(t|ax+b、σ^2)
 =P(t|a,b)

尤度
→最尤推定はパラメータについて最大化

ベイズ推定
 MAP推定
 →事後分布:Posterior(ぽすてりあ)
  MAP:まきしまむ あ ぽすてりおり
  事後分布を最大化する
 対数をとると
        N
 L=-1/2σ^2 ∑(tn-aXn-b)^2 -β/2a^2 -β/2b^2
        n=1
 δL/δa = 1/σ^2 ∑ (tn-aXn-b)(-Xn)-βa=0とする
  =-1/σ^2 ∑ tnXn -b/σ^2 ∑Xn
  = a(β+ 1/σ^2 ∑Xn)

 β部分がなければ、二乗差誤差
 →回帰の最尤推定は二乗和誤差と一緒

 -1をかけると、リッジ回帰(正則化線形回帰)

ハンズオン
・ベイズ推定→多重共線性を回避することができる

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

pythonでwebカメラの画像をPNGファイルに保存するプログラム

2019-10-17 15:09:13 | Weblog
機械学習で学習させるのとかで、
Webカメラの画像をPNGファイルに保存するプログラムが
必要な場合、こんなかんじ(Python+OpenCVを利用)

import cv2

cap = cv2.VideoCapture(0)

if cap.isOpened() is False:
    print("IO Error")
else:
    ret, frame = cap.read()
    if ( ret == True ):
        cv2.imwrite("image.png", frame)
    else:
        print("Read Error")

cap.release()



※cv2.VideoCapture(0)の0はカメラ番号。
カメラを内蔵しているPCで、USBのWebカメラをつけて、そちらの画像が欲しい場合
cv2.VideoCapture(1)と、番号を0から1にかえる

※image.pngのところを、保存したいファイル名に変えてくれれば、
 指定したファイルに保存する

※簡単に書く(エラー処理しない)と、以下でOK
import cv2
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
cv2.imwrite("image.png", frame)
cap.release()

※PythonとOpenCVのインストールのしかたは、前のエントリ参照。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

AnacondaにOpenCV入れるなら、イマドキはopencv-pythonがイイ感じ!

2019-10-17 09:15:05 | Weblog
(以下失敗談を書きます。成功方法だけ知りたい人は、以下2本の線を引きますので、
 2本目の線から終わりまでを実行すればOK)




Jupyter NotebookでOpen CV使いたいから

import cv2

ってやったら、パッケージないといわれ、テキトーに
Anacondaのプロンプトを出してpip install opencv って打ってもエラー。

なので、ちょっとまじめに

PythonでOpenCVをいれて、イメージを表示するまで
https://ameblo.jp/smeokano/entry-12285116787.html

を見て、OpenCVのサイトに行ったら、

OpenCV – 4.1.1
https://opencv.org/releases/

ってことで、4.1.1が出ているので、それをダウンロードしてexe実行
(アプリがないみたいなメッセージが出るがいいえすると、続行できる)
解凍してできた(つまり、exeは自己解凍ファイル)opencvフォルダの下

opencv\build\python\cv2\python-3.7\cv2.cp37-win_amd64.pyd

をAnacondaが入っている(C:\Users\user\Anaconda3)ところの下の

C:\Users\user\Anaconda3\Lib\site-packages

に入れても、import cv2でエラー

・・・だめだめです。




結局、opencv-pythonっていうのを入れた。
Anacondaのプロンプトをだしてそこから

pip install opencv-python

で入った(OpenCVは入れなくていいみたい。自動的にはいるみたいよ)

【参考サイト】
Python 3.6 に OpenCV 3.4 など環境を構築する
https://qiita.com/cointoss1973/items/92d82f9accb239a276a0

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする