Cでつくるニューラルネットワーク

平野 廣美 著
定価 3,675 円 ( 本体価格 3,500 円)
ISBN 978-4-89362-068-2
A5判 並製
312 頁
1991年3月 発売
生物脳の基本単位であるニューロンのモデルを用いたニューラルネットワークで、何ができるのか、どこまでできるのか。
入門レベルから具体例を用いてわかりやすく解説。
全ソースリスト付き(ディスクサービス有り)。
- 内容紹介
- 目次
- 追加情報
- ディスク
- FAQ
- 紹介記事
- 著者:平野廣美(ひらの ひろみ)
- 昭和51年、京都大学工学部航空工学科卒業後、(株)日本CAD、(株)新日鉄ソリューションズ等を経て、現在、楽天株式会社 楽天技術研究所在籍。
大学卒業後まもなくして人工知能に興味を持ち始め、LispやPrologの処理系の開発に従事する。また、日本語によるデータベースの検索システムの開発や工場等の生産計画の最適化、テキストマイニングなどの知識処理などを行ってきた。
(※著者紹介は、2008年のものです。) - 関連図書
- 第1章 ニューラルネットに挑戦してみよう
- 1 はじめに
- 2 考えるマッチ箱
- 3 本書の読み方
- 第2章 階層型のニューラルネットワーク
- 1 学習することは重みが変わること
- 2 赤と白、混ぜたらピンク
- 3 数を数えるくらいできるさ
- 4 へたな字と上手な字を評価できるかな
- 5 ありはフェロモンの道をたどって歩く
- 6 いろいろやらせてみよう
- 第3章 相互に結合させたら何ができるかな
- 1 得意なのは連想だけじゃない
- 2 連立1次方程式を解かせてみよう
- 3 誰だって遠回りしたくない
- 4 うまく物を分配しよう
- 5 スケジューリング問題と箱詰め問題は同じだった
- 注釈
- 参考文献
- あとがき
- 付録 プログラムリスト
■掲載ブログラムに関する補足 (第2章 階層型のニューラルネットワーク)
「第2章 階層型のニューラルネットワーク」における各プログラムの初期化ルーチン initialize() では、結合の重みを保持する配列だけを適当な乱数で初期値を与えていまし たが、バイアス等も含めて以下のように変更してください。
Cコンパイラでは通常、配列は 0 に初期化されますので、それを期待して以下の初期化は行っていませんでしたが、C++では必ずしもそうではないので、積極的に 0 に初期化するようにしておきます。つまり、C++では、動的に配列がとられるのが基本ですから、C の様な 初期化を期待できません。
なお、「いろいろやらせてみよう」のシミュレータについては、動的な配列を採用してい るので、同様の初期化は行なっています。
for( i = 0; i < No_HUnits; i++ )
for( j = 0; j < No_IUnits; j++ )
{ witoh[i][j] = urand();
dwitoh[i][j] = urand();
}
for( i = 0; i < No_OUnits; i++ )
for( j = 0; j < No_HUnits; j++ )
{ whtoo[i][j] = urand();
dwhtoo[i][j] = urand();
}
for( i = 0; i < No_HUnits; i++ )
{ hbias[i] = dhbias[i] = 0.0; }
for( i = 0; i < No_OUnits; i++ )
{ obias[i] = dobias[i] = 0.0; }
※『遺伝的アルゴリズムと遺伝的プログラミング』のFAQ欄にディスクサービスにおけるご質問とご回答を掲載しております。 あわせてご覧ください。
- ■ディスクサービスのご案内
『Cでつくるニューラルネットワーク』、および、『応用事例でわかる 遺伝的アルゴリズムプログラミング』に掲載されているソースファイルは、『遺伝的アルゴリズムと遺伝的プログラミング』、または『続・遺伝的アルゴリズムと遺伝的プログラミング』の付録CD-ROMに収録されておりますので、そちらをご利用いただけます。
また『Cでつくるニューラルネットワーク』のソースファイルにつきましては、姉妹書『C++とJavaでつくるニューラルネットワーク』の付録CD-ROMにも収録しております。
CD-ROMでは、『Cでつくるニューラルネットワーク』の書籍掲載のMS-C Ver. 5.1版と、C++Builder(GUI版)をご提供しております。付録CD-ROMの収録内容の詳細・FAQについては、『遺伝的アルゴリズムと遺伝的プログラミング』付録CD-ROM FAQ欄をご覧ください。
『Cでつくるニューラルネットワーク』をご購入いただいた方で、書籍に掲載されているソースファイルのディスクサービスのみをご希望の方に、上記『遺伝的アルゴリズムと遺伝的プログラミング』の付録CD-ROMをディスクサービスで有償にてご提供しております。(※注)
ディスクサービスのお申込み方法は、書籍のご案内ページをご覧いただくか、パーソナルメディア出版部(TEL:03-5759-8303)までお問い合わせください。
- なお書籍にディスクサービスのご案内を掲載しておりますが、2001年よりお申込先が、パーソナルメディア出版部へと変更になっております。奥付の発行年月日が2001年より前の本をお持ちの方はお申込み方法を出版部までお問い合わせください。
(※注)ご提供するCD-ROMは『遺伝的アルゴリズムと遺伝的プログラミング』の付録CD-ROMと同じものとなっております。なお、『遺伝的アルゴリズムと遺伝的プログラミング』のCD-ROMを除いた書籍のみの販売は行っておりませんのでご注意ください。
- ■姉妹書『C++とJavaでつくるニューラルネットワーク』についてのお知らせとご注意
『C++とJavaでつくるニューラルネットワーク』では、好評の『Cでつくるニューラルネットワーク』をもとに、最新の環境とニューラルネットワークに関する最新の知見を盛り込み、新たに自己組織化マップ(SOM)を取り入れ、内容を一新し、Javaによる実装もCD-ROMで提供しています。付録CD-ROMには、書籍中で紹介したプログラムのC++版とJava版、およびそれに必要なデータを格納しています。また、おまけ付録としてCD-ROM中に『Cでつくるニューラルネットワーク』のMS-C Ver. 5.1版と、C++Builder(GUI版)も収録しています。『Cでつくるニューラルネットワーク』と合わせてお読みください。
※『C++とJavaでつくるニューラルネットワーク』の開発環境等につきましては、『C++とJavaでつくるニューラルネットワーク』のページをご覧ください。
ディスクサービスでお送りしますCD-ROMは、上記「ディスクサービスのご案内」に記載してありますとおり『遺伝的アルゴリズムと遺伝的プログラミング』の付録CD-ROMと同じものとなります。『C++とJavaでつくるニューラルネットワーク』の付録CD-ROMと同じものではありませんので、ご注意ください。
FAQ
お寄せいただきました御質問等よりお答えいたします。このFAQは、『遺伝的アルゴリズムと遺伝的プログラミング』付録CD-ROM FAQよりの抜粋です。
| omake\NNbookの中にあるソースを
VC++ を使ってコンパイルするにはどうしたらよいのでしょうか? |
| 残念ながらVC++ではコンパイルできません。 MSCのVer6.0では確認されております。 なぜ不可能かは、MSCではグラフィックやマウスをほぼネイティブに呼び出しているということと、それに対してWindowsの環境でそのようなリソースを使うには専用のAPIを介する必要があるためです。 この書き換えについては、本文に動きが説明されていますのでご参照ください。 |
| 「Cでつくるニューラルネットワーク」omake\NNbookについてです。graph.hなどのヘッダーファイルを手に入れる方法をお教え願います。 |
| Cのコンパイラに付属しているものです。 またCコンパイラは、マイクロソフトのMSC前提ですから、VC++や他の処理系には対応していません。本書では、MSCのC/C++を使ったコーディングとなっています。 なお、graph.hはプログラム中に使用しているグラフィック描画のための関数を定義したものです。 それぞれの関数の機能は、単純なものしか使っていませんので、現在のコンパイラに対応して書き換えることは可能でしょう。 |
|
「Cでつくるニューラルネットワーク」についてです。 プログラムがMSCのためコンパイラできずにいます。ほかの方法で、コンパイラが可能であれば教えてください。 |
| 何度か調べてみたのですが、有効な手段がありません。問題を整理すると以下の2つになります。 1 プログラムの構造に起因する問題 Windows の環境下では、イベント駆動のため、以前のコンソールが1つであった時代のプログラム構造とは、異なっている。したがって、そのままでは動作できない。コンソールアプリケーションとして、以前の環境をシミュレートできるようなプログラムについて調べたが、満足できるものを見つけることができなかった。 2 コンパイル不可の問題 コンパイラの問題ではない。グラフィックやマウスのライブラリを使用しているため、それを呼び出すためのヘッダーファイルが必要となる。しかしながら、今のコンパイラには、それらが存在していない。つまりヘッダーファイルが存在しないというコンパイルエラーが出る。 これらを回避するために、C++Builder版のプログラムをディスクサービス(CD-ROM)の中に同梱しています。「WinNN」というフォルダになります。 |
本書をお読みになった方々にブログやweb上のコラムでご紹介いただいております。
|