Apache2のListenとポート番号指定でやらかした
先日Apache 2.4でやらかしたことを書きます。
詳しいことは言えませんが、Ubuntu上でHTTPサーバApach2をいじっていました。
そのときポート番号を指定しており、
http://xxxxxxxxxxxxx.yyyyy.zzzzzz:NNNN
といった具合でNNNNポートを指定したURLの時だけ別の処理をしようとしていました。
しかしうまく行きませんでした。上記URLにはアクセスすることが不可能でした。
小一時間悩んだ結果、Apache2の設定ファイルである
/etc/apache2/ports.conf
にて
Listen 80
と書いてあったのが原因であることに気づきました!
これでは、NNNNポートにアクセスしようとしても、80番のポートにしか到達しません。
そのため、NNNNポートで指定したURLではアクセス不可能だったのです。
まだまだApacheとかサーバ周りの勉強が足りないなぁと思いました・・・。
情報可視化学 講義メモ
本記事について
本記事は筆者が大学院で受講した講義を復習用にまとめたものです。
受講する度に内容を加筆していきます。
万が一、内容に間違いや不適な表現がありましたら、コメントで指摘をいただけると幸いです。
内容ごとに見出しを分ける予定ですが、一つの科目ごとに単一の記事で記載します。
もしかしたら、途中で方針を大幅に変えるかもしれません。ご了承ください。
情報可視化の基礎知識
可視化とは?
一般的に可視化(Visualization)には2つの意味がある.
- 見えないものを見えるようにする
- 見えにくいものを見やすくする
情報可視化学では後者の可視化を行い,人間の視覚的認知能力を活用した情報の伝達を行う手法について学ぶ.
情報可視化の様々な例
チャーノフの顔グラフ
こちらの解説がわかりやすかったです.
メタファー
実社会における情報可視化の応用例
・流体力学:
流れのデータ(時間変化)
・自動車・建築物:
設計,構造・振動解析結果
・医用画像:
MRI, CT, PET
・ネットワーク:
遺伝子ネットワーク,論文共著関係,SNS
・地図:
ハザードマップ,位置情報サービス
ビッグデータと可視化
情報可視化は,ここ数年で非常に浸透してきた.その背景には使えるデータの増加がある.
・センサデータの多様化
・記憶装置の大容量化,低コスト化
・計算機パワーの向上
といった要因により,大規模データ処理とコンピュータグラフィックスが発展.
さらに,リアルタイム性の向上(データ処理・描画能力の高速化)で,インタラクティブ可視化システムが実現!
・探索的データ分析
・視覚的分析(Visual Analytics)
が重要となる.
科学的可視化と情報可視化
情報の可視化は科学的可視化と情報可視化に大きく分けられる.
両者の違いは特別な属性を持つか否か,である.
特別な属性とは,2次元ないし3次元の座標のことを指す.
科学的可視化の特徴
・座標という特別な構造を持つ(データは座標をベースに分類できる.例えば,x-y-zの3軸のグラフは空間の座標に対応させて可視化する)
・可視化したい構造は明らか.→ どのように見せるか(How to visualize)(グラフの色や軸のスケールなどの見せ方)
情報可視化の特徴
・データは特別な構造を持たない(科学的可視化における座標に相当する属性はない.)
・可視化すべき構造は持たない.→ 何を見せるか(What to visualize) + どのように見せるか(How to visualize)(どの属性を可視化するか+見せ方)
情報可視化では,どういう構造で可視化するかを考える必要がある.
オーバービューとフォーカス
我々がデータを可視化する上では,オーバービューとフォーカスという2つの視点が必要となる.
・オーバービュー:
対象空間全体の可視化し,全体像や概略を眺める.
・フォーカス:
まず全体像を見る,次に絞り込んで近くでみる,さらに必要に応じて詳細を見る.
オーバービューの役割
情報可視化:
データ空間全体の情報(概略を知ことができる)
・属性値の範囲
・密集する部分空間
・特徴的構造(ネットワーク)
・データ分布
科学的可視化:
「フォーカスすべき情報」を発見するための手がかり
・情報アクセス支援
・曖昧,大まかな条件からの発見
・外れ値の発見
(第1回ここまで)
適応学習制御理論 講義メモ
本記事について
本記事は筆者が大学院で受講した講義を復習用にまとめたものです。
受講する度に内容を加筆していきます。
万が一、内容に間違いや不適な表現がありましたら、コメントで指摘をいただけると幸いです。
内容ごとに見出しを分ける予定ですが、一つの科目ごとに単一の記事で記載します。
もしかしたら、途中で方針を大幅に変えるかもしれません。ご了承ください。
フィードバック制御
適応学習制御を学ぶ前に、基本であるフィードバック制御について押さえます。
そもそも「制御」とは?
制御とは、制御対象であるシステムが望ましい振る舞いをするような操作量(入力)を決めることです。
操作量 をシステム に入力した時のシステムからの応答 は という写像関係として記述でき、やりたいこととしては逆写像 を求めることになります。
逆写像を求めるのは難しい
しかしながら、逆写像を正確に求めることは簡単ではありません。
- 制御対象のシステムは物理現象を用いるため、微分方程式で記述されるケースが多い → システムを記述する全ての微分方程式を解く必要がある
- システムそのものに何らかの変化が生じた場合、その度に逆写像を求めないといけない
- システム外部のノイズや環境などによる外乱の影響を考慮するのが難しい
といった課題があります。
発想の転換!逆写像は知らなくても良い
望ましい振る舞いを実現する操作量を決めるために逆写像を考えていました。
しかし、目的を達成するには逆写像である必要はありません。
逆写像を導出した上で我々が操作量そのものを決めるのでは無く、何らかの仕組みによって望ましい操作量を生成してやれば良いです。
そこで、フィードバック制御という仕組みが用いられます。
「操作量をどのくらい変えれば出力が望ましい値になるか?」という考え方であり、出力の結果をフィードバックして操作量を決定します。
ざっくりとした流れは、人間が微調整して望ましい出力にするのと同じです。
「今は右にちょっとズレてるから、少し左に寄せて」
「時速60km超えてるから、少しスピード落として」
と、同じことをやっています。
PID制御(フィードバック制御でよく使う手法)
上記のようなフィードバック制御を機械的にうまく行う手法として、PID制御がよく使われます。
PID制御では、入力 を偏差(制御量の現在の値と目標値の差) を用いて以下の式で決定します。
ここで、 は独立した定数です。
また、 を比例項、 を積分項、 を微分項といいます。(そのまんまですね)
比例(Proportional)と積分(Integral)と微分(Differential)を用いていることから、それぞれの頭文字をとってPID制御と名付けられています。
それぞれの項が持つ役割のイメージとしては
と考えるとわかりやすいです。現在・過去・未来の情報を元に操作量を決める制御方式であり、望ましい出力となるためにやることは を決めることとなります。逆写像を求めるより圧倒的に簡単ですね!
状態フィードバック制御(現代制御)
先述のPID制御は強力な手法なのですが、それでもシステム内部の時間変化(Ex. 回路に流れる電流によって発生したノイズの影響など)を表現しきれない、という課題があります。
そこで、システム内部の状態を表す内部変数を導入した状態フィードバック制御という考え方が現れました。現代制御理論とも呼ばれています。(対照的にPID制御などの手法は古典制御と呼ばれています。)
違いとしては、古典制御では1入力1出力なのに対し、現代制御では多入力多出力に対応している点です。
状態フィードバック制御では、「システムの出力 は、入力された操作量 によって変化した内部変数のうちのいくつかが観測されている」と考えています。
(第1回分ここまで)