「 デザイン・パタン 」一覧

Scalaのextendsとself type annotationの差異

Scalaのextendsとself type annotationの差異

Scalaのextendsとself type annotationの区別は、「実際に拡張している(actually extending)」と「まだ拡張していない(doesn't extend it yet)」の差異に対応する。 生成時点では、双方の機能に大差は無い。しかし単体水準のテストを可能にするという問題設定においては、self type annotationは「依存性注入(Depen...

深層ボルツマンマシンのアーキテクチャを再利用することでニューラルネットワークを実装する実験

深層ボルツマンマシンのアーキテクチャを再利用することでニューラルネットワークを実装する実験

TensorFlowのようなライブラリを利用せずに深層学習を自前で実装するという「縛りプレイ」を継続している。 深層ボルツマンマシンの関連から設計したアーキテクチャを再利用し、機能的に拡張することによって、次はニューラルネットワークを設計した。 問題設定とアーキテクチャ/アルゴリズム設計に関する説明 深層学習の「アルゴリズム設計」とソフトウェアの「アーキテクチャ設計」の「橋渡し(B...

TensorFlowのようなライブラリを利用せずに深層学習を自前で実装するという「縛りプレイ」を開始した

TensorFlowのようなライブラリを利用せずに深層学習を自前で実装するという「縛りプレイ」を開始した

TensorFlowのようなライブラリを利用せずに深層学習を自前で実装するという「縛りプレイ」を開始した。 問題設定とアーキテクチャ/アルゴリズム設計に関する説明 深層学習の「アルゴリズム設計」とソフトウェアの「アーキテクチャ設計」の「橋渡し(Bridge)」は如何にして可能になるのか GitHub deep-learning-by-means-of-design-patt...

「プログラミングの義務教育は実現可能である」という認識は如何にして可能になっているのか

「プログラミングの義務教育は実現可能である」という認識は如何にして可能になっているのか

小学校におけるプログラミング教育の必修化は、プログラミングを義務教育の学習内容に含めることを意味する。大義名分として言えば、この教育カリキュラムは、人工知能による第四次産業革命の実現を目指した成長戦略として導入される。 だが、この展望は途方も無く長期的な未来志向になっている。このプログラミングの教育を受ける児童が小学校の6年生であるとするなら、彼ら彼女らが人工知能の研究開発やシステム開発の現...

エンジニアの「形骸」としての「資格」、その機能的等価物としての「学歴」

エンジニアの「形骸」としての「資格」、その機能的等価物としての「学歴」

IPA独立行政法人が制度化しているような「資格」と、いわゆる「学歴社会」が形式化している「学歴」は、IT業界において、ある種の共通の問題を浮かび上がらせている。その問題というのは、「資格」や「学歴」は「実際には役に立たない場合がある」にも拘らず「常に必要であるかのように」期待され続けているというミステリーに要約される。 「資格」や「学歴」の社会的機能は人材の選抜における負担軽減に他ならない。...

Python3でWeb上の学術論文のPDFファイルを取得して「文書要約」する

Python3でWeb上の学術論文のPDFファイルを取得して「文書要約」する

ここで紹介している文書要約技術は、GitHubのAutomatic Summarization Library: pysummarizationで纏めて紹介している。 Python3.4でWeb上にある学術論文のPDFファイルをダウンロードして、そのPDFファイルの内容をテキストマイニングすることで「文書要約」を実行する。 文書要約のアルゴリズムに関しては、日本語文書の自動要約アルゴリズム...

GoFのDecorator Patternをレガシーコードやスパゲティコードの中に挿入した場合の逆機能

GoFのDecorator Patternをレガシーコードやスパゲティコードの中に挿入した場合の逆機能

GoFのデザイン・パタンの一つであるDecorator Patternは、言葉通り、コアとなるコンポーネント・アーキテクチャの装飾用にインターフェイスを定義しておくことによって機能的な拡張性を担保するノウハウだ。 このデザイン・パタンのデメリットや逆機能は、とりわけレガシーコードやスパゲティコードに中にこのパタンを挿入した場合に浮き彫りになる。 まずはこのDecorator Patte...

Q学習(Q-Learning)やバンディットアルゴリズムなどの強化学習のデモ用のコードを公開して保守していくことにした。

Q学習(Q-Learning)やバンディットアルゴリズムなどの強化学習のデモ用のコードを公開して保守していくことにした。

Q学習のコードは、リポジトリを変更している。Python版は に配置している。JavaScript版は に配置している。 人工知能、機械学習、強化学習といった用語で言及されるアルゴリズム設計について、説明を求められる機会が公私問わず増えてきたため、Q学習(Q-Learning)やバンディットアルゴリズム(Bandit algorithm)など、強化学習(Reinforcement lea...

日本語文書の自動要約アルゴリズムを60年近く前の論文を頼りに再記述する

日本語文書の自動要約アルゴリズムを60年近く前の論文を頼りに再記述する

以下の記事の内容は、accel-brain-code/Automatic-Summarization(GitHub)にてより詳細に解説している。 文書自動要約に関する背景知識については、こちらを参照。 H. P. Luhnが60年近く前に提唱していた文書の自動要約アルゴリズムが、オライリー本の一つである『入門 ソーシャルデータ 第2版――ソーシャルウェブのデータマイニング』で紹介されて...