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

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

平野 廣美 著

本体価格 3,500円+税

ISBN 978-4-89362-068-2

A5判 並製

312 頁

1991年3月 発売

生物脳の基本単位であるニューロンのモデルを用いたニューラルネットワークで、何ができるのか、どこまでできるのか。
入門レベルから具体例を用いてわかりやすく解説。
全ソースリスト付き(ディスクサービス有り)。

正誤表


書籍版

本体 3,500円+税

電子書店版

本体 2,800円+税

Smooth Reader専用版

税込価格 2,200 円


  • 電子書店版/Smooth Reader専用版は、印刷書籍をスキャナーで読み取り、電子書籍化したものです。
  • お取り扱い電子書店については「電子書店でのご購入のご案内」をご覧ください。

  • 内容紹介
  • 目次
  • 追加情報
  • ディスク
  • ダウンロード
  • FAQ
  • 紹介記事
著者:平野廣美(ひらの ひろみ)
昭和51年、京都大学工学部航空工学科卒業後、(株)日本CAD、(株)新日鉄ソリューションズ等を経て、現在、楽天株式会社 楽天技術研究所在籍。
大学卒業後まもなくして人工知能に興味を持ち始め、LispやPrologの処理系の開発に従事する。また、日本語によるデータベースの検索システムの開発や工場等の生産計画の最適化、テキストマイニングなどの知識処理などを行ってきた。
(※著者紹介は、2008年のものです。)
関連図書
電子書籍(電子書店版/SmoothReader版)のご紹介
  • 電子書店版/SmoothReader専用版は、印刷書籍をスキャナーで読み取り、電子書籍化したものです。
  • 無料で試し読み用ができます。
  • ダウンロードサービスがご利用いただけます。紙書籍版のディスクサービス(CD-ROM)の違いについては、ダウンロード欄をご覧ください。


  • 第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欄をご覧ください。

遺伝的アルゴリズムと遺伝的プログラミング』付録CD-ROM README
遺伝的アルゴリズムと遺伝的プログラミング』付録CD-ROM FAQ

『Cでつくるニューラルネットワーク』をご購入いただいた方で、書籍に掲載されているソースファイルのディスクサービスのみをご希望の方に、上記『遺伝的アルゴリズムと遺伝的プログラミング』の付録CD-ROMをディスクサービスで有償にてご提供しております。(※注)


ディスクサービスのお申込み方法は、書籍のご案内ページをご覧いただくか、パーソナルメディア出版部(TEL:03-5749-4932)までお問い合わせください。


  • なお書籍にディスクサービスのご案内を掲載しておりますが、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と同じものではありませんので、ご注意ください。

また、『C++とJavaでつくるニューラルネットワーク』の付録CD-ROMには、『応用事例でわかる遺伝的アルゴリズムプログラミング』のデータは収録しておりません。


ダウンロードサービスのご案内

『Cでつくるニューラルネットワーク (電子書店版/SmoothReader専用版)』をご利用の方は、本文掲載のソースファイルがダウンロードできます。
ソースファイルをダウンロードする (zipファイル)
※圧縮ファイルの解凍には、電子書店版/SmoothReader専用版本文掲載のパスワードが必要です。

ダウンロードファイルの構成

フォルダ/ファイル 収録内容 開発環境
NNBOOKフォルダ オリジナル版 MSC用
(FAQ欄もご覧ください)
WINNNフォルダ C++Builder版
開発:C++Builder1
(C++Builder3での実行も確認済み)

ディスクサービスでご提供するCD-ROMとは以下の収録物に違いがございます。あらかじめご了承ください。


ディスクサービスでご提供するCD-ROMは『遺伝的アルゴリズムと遺伝的プログラミング』の付録CD-ROMと同じものとなっております。※1)

CD-ROM中には、『遺伝的アルゴリズムと遺伝的プログラミング』および『Cでつくるニューラルネットワーク』のソースも収録してありますが、本ダウンロード版には収録しておりません。

本書に関するソースリストはダウンロードファイルとディスクサービスとは同一内容です

※1) 『遺伝的アルゴリズムと遺伝的プログラミング』のCD-ROMを除いた書籍のみの販売は行っておりませんのでご注意ください。

ご注意

  • 本ダウンロードファイルをご利用になる前に,必ず収録のreadme.txtをお読みください。
  • 収録するプログラムに万一バグがあってもその修正は行いません。
  • 収録されたコンテンツは,使用者の責任において利用するものとし,プログラムの実行により発生したいかなる直接的・間接的被害についても,著者およびパーソナルメディア株式会社はその責任を負いません。
  • 本ダウンロードファイルに収録する各プログラムやデータの著作権は著作者が保有します。
  • 収録するプログラムの営利目的での使用は禁止します。また,収録するプログラムやその他データの再配布は禁止します。(ネットワーク上へのアップロードを含む。)
  • 本書についてのお問い合わせは,E-mailもしくは郵送でお受けいたします。回答にはお時間をいただく場合がございます。またご回答できない場合もございます。
  • 本書の内容を逸脱したご質問,各ツールや操作に関するご質問につきましては,お答えいたしかねますので,あらかじめご了承ください。
  • その他,本書およびソースプログラムに関する情報を当webサイトでご案内しております。

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上のコラムでご紹介いただいております。



トップ > コンピュータ書 > Cでつくるニューラルネットワーク