著書
(12) 「LLMのファインチューニングとRAG」 新納浩幸,オーム社 (2024)
(11) 「文書分類からはじめる自然言語処理入門」 新納浩幸,古宮嘉那子,科学情報出版 (2022)
(10) 「PyTorch自然言語処理プログラミング」 新納浩幸,インプレス (2021)
(9) 「PyTorch による物体検出」 新納浩幸,オーム社 (2020)
(8) 「Chainer v2 による実践深層学習」 新納浩幸,オーム社 (2017)
(7) 「ニューラルネットワーク自作入門」 Tariq Rashid (著), 新納 浩幸 (監修, 翻訳) ,マイナビ出版 (2017)
(6) 「Chainer による実践深層学習」 新納浩幸,オーム社 (2016)
(5) 「R で学ぶクラスタ解析」 新納浩幸,オーム社 (2007)
(4) 「入門 Common Lisp - 関数型4つの特徴とλ計算」 新納浩幸,毎日コミュニケーションズ (2006)
(3) 「Excel で学ぶ確率論」 新納浩幸,オーム社 (2004)
(2) 「入門RSS Webにおける効率のよい情報収集/発信」 新納浩幸, 毎日コミュニケーションズ (2004)
(1) 「数理統計学の基礎 よくわかる予測と確率変数」 新納浩幸, 森北出版 (2004)
「LLMのファインチューニングとRAG」 新納浩幸、オーム社 (2024) Amazon のページはここ 本書の中で使ったプログラムとデータは、出版社のページから DL してください。 2023年3月の言語処理学会年次大会で「ChatGPTで自然言語処理は終わるのか?」という緊急パネル討論が開かれました。2022年11月に OpenAI 社から ChatGPT が発表され、それが人工知能の研究分野に大きな衝撃を与えていたためだと思います。明らかに自然言語処理の研究が終わるわけはないのですが、その研究対象は大きく変化し、研究がやりづらくなる面はあると思います。 私もそのような被害を受けた1人です。私が扱っているテーマの多くは、「ChatGPT 使えば良いのでは?」で終わってしまいます。実はそう単純ではないのですが、ただ何らかの形で ChatGPT を使わないといけない or 使った方が良い状況です。私の場合、実装して動かすことで手法を理解し、問題を見つける形でしか研究を行えないので、フロントエンドの部分だけいじる形だと、何を研究したらよいのか分からない状況になっています。 そういう状況なので、ローカルに LLM をもってきて動かせば少しはやることが見えてくるかもと思って、少し勉強した内容をまとめたのが本書です。「あとがき」にも書きましたが、この分野は非常に進展が早く、本書の内容は数ヶ月で陳腐化するでしょう。いや、もうすでに陳腐化している感じもします。実は本書執筆開始時点での LangChain のバージョンは 0.0.354 だったのですが、初稿の校正が終わったら 0.1 に上がってしまい、作っていたプログラムはそのままでは動かず、急いで 0.1 用に書き換えたら、先日 0.2 にまた上がったようです(そのうち出版社に修正部分は知らせます)。こんな調子ですので、すぐに本書は消えていくと思いますが、ともかく勉強目的に書いた本なので、それは最初から諦めています。何か誰かの参考になったらうれしいです。 本を出版する動機は作者によっていろいろだと思います。先に書いたように私の場合、その目的は自身の勉強です。ただそれは 9 割で、1 割ほど別の目的もあります。残り1割は、もちろん、お金ではなく(理系の書籍執筆はアルバイトの観点からはコスパ悪すぎです)、それは宣伝です。私もあと3年弱で定年です。定年後、どこかで働きたいのですが、私程度の能力ではオファーなどくることはないので、就活時の自己アピール用の執筆でした(逆効果にならないことを祈っています)。 定年後の就職先に大学や研究機関というのは無理でしょうから、定年後を見据えて、今後も少し実用よりのテーマで勉強していくつもりです。その観点では ChatGPT の出現は、私にチャンスをくれたようにも思います。 また、これも少し宣伝ですが、2023年6月に茨城大学で行った ChatGPT に関する講演と対談の記事です。現在、かなり世界は変わってしまいましたが、その時点での ChatGPT に関する私の理解と感想が書かれています。 https://www.ibaraki.ac.jp/news/2023/12/01012179.html PS 2024年5月20日、発売前ですが、既に間違いが見つかっています。印刷前には間に合いませんでした。 ・p.125 の下から 7 行目辺りに「Cohere の Command R+」 は公開されていないモデルのように書かれています。すみません、間違いでした。Command R+ は公開されています。 ・chap5 の build-mywikidb-bm25.py は ibaraki-bm25.pkl を作るプログラムです。ibaraki-bm25.pkl は配布しているので、動かす必要はないのですが、実際に、動かすと load_dataset でエラーが出ます。これは p.48 で datasets を 2.10.1 に設定したままにしているてからです。build-mywikidb-bm25.py を動かすには datasets を 2.19.1 に戻して下さい。 $ pip install datasets==2.19.1 2024年8月23日、同業者から以下のミススペルをご指摘頂きました。ありがとうございました。 p.47 上から 3行目: (誤) HaggingFace → (正) HuggingFace p.62 上から 1行目: (誤) HaggingFace → (正) HuggingFace |
|
「文書分類からはじめる自然言語処理入門」 新納浩幸,古宮嘉那子,科学情報出版 (2022) Amazon のページはここ 本書の中で使ったプログラムはここ から辿ってください。 私の初めての共著本です。本は共著で書くといろんな意味で一貫性がなくなるので、実は共著というのはやらない方針だったのですが、下記のような事情があって、古宮さんに共著者になってもらいました。 この本の執筆の依頼が来たのは確か 2019年の中頃だったと思います。依頼は自然言語処理の基礎という漠然としたものでした。「これは楽勝」っと安請け合いして、書くことになったのですが、他の本の執筆もあったし、当時、忙しいのもあって、「〇月になったらやります。私は書くのは速いので、2ヶ月もあれば十分です。」などと偉そうに言っていたのですが、色々忙しくて、「〇月」の部分がどんどん先になってしまいました。それでも「2ヶ月もあれば十分」というのは自信があったので、なんとかなると思っていました。ところがいつになっても書き始めることができません。並行して執筆していた本がやっとなんとか書き終わりヘロヘロになってしまい、もうこの本の執筆はやめておこうと思いました。先の本を執筆したときにも感じていたのですが、自分も年を取り、集中力や持続力が極端に落ちてます。大学での雑用も多く自分の時間がほとんど取れない状態だし、そんな状態で本の執筆など無理と思ったのでした。それでこれ以上、出版社の人に迷惑かけるのもよくないので、平謝りで give up 宣言をしてしまいました。 自分はもう駄目か、、、っと落ち込んだ日がしばらく続いたある日、出版社の人から原稿の進捗の問い合わせのメールが来ました。「え? なんで?」。メールを読むと担当者が代わって、引き継ぎがうまくいっていないようで、私の give up 宣言は伝わっていなかった様子です。もしかしたらこれは神様がくれたチャンス(or 試練)かも。色々考えて、再びやってみることにしました。 ただ自分にはもう力も時間もないというのは十分わかっていたので、どうしようかと考えた結果、古宮さんにお願いして半分書いてもらうことにしました。半分ならなんとかなると思ったのでした。更に今回の反省もあるので、2021年の年末に脱稿という非常にゆるい設定にしてもらいました。でも、やっぱりなかなか進みません。出版がこんなに遅れたのは色々原因あるのですが、基本私のせいです。古宮さんは〆切までにきっちり仕上げたのですが、私がダメだったのです。申し訳なかったです。 古宮さんにお願いして書いてもらった彼女の後書きを読みと、なんだか感謝されており恐縮です。私自身も上記の事情で共著を引き受て頂いた古宮さんには感謝しております。なかなか、もう本は書けないと思いますが、共著というのも良いかもと思いました。 ともかく出版できました。評価は気にしません。やり遂げたことで満足です。 |
|
「PyTorch自然言語処理プログラミング」 新納浩幸、インプレス (2021) Amazon のページはここ 本書の中で使ったプログラムとデータは、出版社のページから DL してください。 この本は私の丁度 10冊目の著作です。そして初めて私の専門である自然言語処理について書いた本です。これまで書いた 9冊は全て専門外の本です。今まで自然言語処理の本は書かなかったのには理由があります。結局は「逃げ」です。自分の専門で下手なこと書いて、批判されたり、無能さをさらしたりすることから逃げていたのです。 ただここ数年で考え方が変わりました。もうすぐ私も引退です。残された時間は長くはありません。自分の残りの研究人生で何ができるのか、何をすべきなのかを考えないといけないと思っています。その際に「逃げ」てる余裕はもうありません。 私の研究スタイルは、面白そうな手法を実装して問題点を見つけてテーマを探すタイプなので、ディープの世界に入った昨今、何かよい業績を出して、研究者としての名声を得ることは多分無理です。私ができることの1つは本書のような本を書くことかと思っています。以前 Chainer の本を書いたときに、予想以上に評価が高くて、この種の本を書くことも少しは意味があると思ったのでした。やったことに対しては批判を恐れず何か Output を残すというのは、私の基本方針でもあります。そんな感じで、この本を書いてみました。 この本ですが、word2vec、 LSTM、seq2seq は古くて、本当は入れたくなかったのですが、出版社からの要求なので仕方なかったです。この本は 5章の BERT の部分だけが読む価値ある部分です。書いてる内容は自分がこれまで自己流で作ったプログラムをまとめたもので、多分、きちんと調べればもっとスマートに処理できる方法はあると思います。ただ自分の理解を書く方が、マニュアルを写すよりも、読者の理解の助けになると思っているので、そうしています。でも Self-Attention の説明は良くなかったかもしれません。Self-Attention は通常の Attention の一般形から理解するのが正統でしょうけど、私的には系列変換の一種と捉えた方が簡単だと思い、あのような記述にしたのですが、あれでは誤解されそうで、この部分は反省でした。また出版社からもらった原稿は、やたら字が大きくて、スカスカのページで、、、最初見たときに、色々クレーム出したのですが色々反論されて、何度か読むうちに慣れてきて、「まあ、いいか」っという感じで気にしないことにしたのですが、やっぱり変です。この点も反省です。 今年中にもう1冊は本を書きたいと思っています。この本についてはもう振り返らずに次に進みます。 正誤表も出版社からのページを参照下さい。(2022年10月26日) |
|
「PyTorch による物体検出」 新納浩幸、オーム社 (2020) Amazon のページはここ 本書の中で使ったプログラムとデータはここ Deep Learning がはやってくれたおかげで、共同研究がらみで物体検出も手を付けることが多くなりました。オーム社の方から Deep Learning がらみの執筆の話があり、自分なりに一度この技術をまとめておきたいと思って、本書の提案をしたところ、認められて書くことになりました。Chainer が実質消えて、今後は PyTorch になるだろうから、早めに PyTorch の入門書も書けたらよいかな、という狙いもありました。 ただ 2018年、2019 年は忙しくて、忙しくて、全然、執筆に手が付けられない状態でした。執筆の話が出てから1年近く過ぎたような気がします。もう投げ出してしまいたかったのですが、それは良くないことは十分分かっていました。私は日頃「どんなにボロボロの研究でも Output はすべき」っと学生に指導していて、それができないとなると自分の identity もなくなるので、どうにかしなければという思いで、悶々とした日々でした。 幸か不幸か新型コロナウイルスの関係で 2020年4月から大学がテレワークになり、細切れとはいえ比較的集中した時間が取れるようになりました。それでこの状況を利用して、1ヶ月半くらいでまとめました。かなりハードな日々でした。1ヶ月以上外の空気は吸わず、ずっと PC の前にいたと思います。 結果、なんとか書き上げることはできましたが、できはいまいちです。物体検出の部分を目的に購入した人にとっては、期待はずれの部分が多いと思います。申し訳ないです。ただ 1章の PyTorch の説明はわりとうまく書けたと思いますので、その部分だけは価値はあるとは思っています。 ただ、早めにリベンジしたいです。次に書く本は自信作になるようにしたいです。 |
|
「Chainer v2 による実践深層学習」 新納浩幸、オーム社 (2017) Amazon のページはここ 本書の中で使ったプログラムとデータはここ 昨年出版した「Chainer による実践深層学習」の改訂増補版です。Chainer はバージョンアップが激しくて、「Chainer による実践深層学習」はすぐに無駄な本になるだろうと予想していましたが、そのとおりどんどんバージョンは上がり、とうとう今年(2017年)の6月にはバージョンも2になり、サンプルコードも動かないものが出てきて、予想はほぼ的中しました。 別に気にしてはおらず、そのまま消えていく本で良かったのですが、予想に反して「Chainer による実践深層学習」は結構評判が良くて、この本のおかげで色々な人と関わりが持てました。それでもう少し書きたいな、、、っと思っていたところに、出版社からこの改訂増補版の話がありました。書き足す部分は少しだから簡単だし、これによって、もう少しこの本の寿命も延びれば良いかと思って、OKして書きました。 Chainer もかなり浸透したし、Deep Learning もどんどん高度になってきたので、この本の役割はもう過去のもののようにも感じますが、これから勉強するという入門者にはまだ利用価値あると思います。私の研究室のゼミで利用しようと思います。 2018年3月4日 v1 ではパラメータ付きの関数の宣言は __init__ の中でカンマで区切って並べていたのですが、v2 からは with self.init_scope(): を使うのが正式みたいです。参考までに、本書のベースとなる iris0.py を with self.init_scope(): を使ったものに書き換えたものが iris02.py です。書籍で扱ったものは、今までの書き方でも動きました。with self.init_scope(): を使った場合に何が変わるのかはよくわかりません。もっと複雑なモデルを記述しようとしたときに役にたつ場面があるのだと思います。 2018年3月4日 word2vec の説明は大きく間違えている部分がありました。P.80の8.3式は文献[1]の式(2)に対応します。 [1] Distributed Representations of Words and Phrases and their Compositionality https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf 式(2)では対象単語には input、文脈語には output のベクトルが使われていますが、P.80の 8.3式では、対象単語と文脈語ともに同じ種類のベクトルが利用されています。私は input ベクトルと output のベクトルの違いが分からず、実装上は同じもので良いと思っていたのですが、区別しないとダメなことが分かりました。そのため P.83 の図8.1のネットワーク図も間違えています。ネットワーク図は文献[2] の Fig.3 のようになります。入力層から隠れ層の間 がinputベクトルを表し、隠れ層から出力層の間が outputベクトルを表します。 [2] word2vec Parameter Learning Explained https://arxiv.org/abs/1411.2738 申し訳ありませんでした。本書のように input ベクトルと output のベクトルを区別しなくても、それなりの結果はでるとは思います。本書は Chainer でのプログラム作成方法を解説した本なので、同じものだと考えてモデルを作った場合は、こういった実装になるということを示した、として許して下さい。Chainer のサンプルプログラムでは、きちんと input ベクトルと output のベクトルを区別していますので、具体的な実装例はそれを参照して下さい。 # 本件は同業の研究者から指摘されました。感謝します。ありがとうございました。また訂正が遅れ、すみませんでした。 |
|
「ニューラルネットワーク自作入門」 Tariq Rashid (著), 新納 浩幸 (監修, 翻訳) ,マイナビ出版 (2017) Amazon のページはここ 昨年の大晦日近くに、この本の翻訳の依頼が舞い込みました。Chainer の本が評判良かったのが幸いしたようです。ともかく、翻訳はやったことないけど、面白そうなのでやってみることにしました。 お正月休みにざっと読んで、大筋は理解できて、かなり平易なので「楽勝!」っと思ったのですが、いざやってみるとかなり大変でした。最初1ページ訳すのに3時間くらいかかって、、、本当に終わるのか不安になりました。意味は分かるけど、直訳すると非常に変なので、できるだけ原文を崩さずに滑らかな日本語にするという作業が大変でした。この本の翻訳の作業は、ほぼこれだけと言ってよいです。こうなると内容を理解する力とか、英語の力とかは無関係で、ターゲット言語(日本語)の能力が翻訳には本質的なのが実感しました。いいも悪いも、とにかくいろいろ文章を書いてきた経験がぎりぎり最後に効いてきて、後ろの Part2, Part3 は実質1週間位で仕上げられました。 訳し終わって改めて通して読んでみると、、、訳はダメでしょうけど、本自体はかなりいい本だと再確認できました。「こんな本売れないよな、、、」っと少し冷めた目で見てましたが、もしかしたら、けっこう売れるかも知れません。 今回初めて翻訳に挑戦したのですが、結論的には、、、「やっぱり翻訳の方が楽かな・・・」というの結論です。自分で本を書くのは文章を自分で作っていいので楽ですが、内容に責任を持たないとダメなので、その点がかなりプレッシャーです。例えば、今回はコードの最終確認は編集者が主にやってくれました。この点だけでも、かなり気楽でした。 またどこかで、おいしい翻訳の話などあれば、声をかけて頂きたいです。 |
|
「Chainer による実践深層学習」 新納浩幸、オーム社 (2016) Amazon のページはここ 本書の中で使ったプログラムとデータはここ 2013年、私の主力言語は R と Perl でした。その当時 Python は使ったことがありませんでした。その頃から急激に Deep Learning がはやりだし、この流れに乗らないと非常に肩身が狭い状態になり、思い切って 2014年から研究室内の使用言語を Python に移行し、Deep Learning に取り組むことにしました。でも、なかなか Deep Learning の研究ができません。SVM のように手軽に使えるツールがないからです。自分で作るのは大変すぎます。当初、Pylearn2 というわりと評判の良いフレームワークを使っていたのですが、Python の力もないためか、なかなか使いこなせません。簡単なネットワークでも、そのプログラム作成はかなり困難でした。そんな中、2015年6月に Chainer が発表され、最初に動かしてみた感想は、「やったー!やっとこれで Deep Learning のプログラムが作れる! 」でした。 でも、はじめて Chainer を触る人には、なんだか取っつきにくい面があるような気もしました。理由は簡単です。比較的自由にプログラムが作れるので、人によって作成したプログラムの様子がかなり違うからです。これは Chainer の長所の裏返しです。またバージョンアップが激しすぎ、ネットでサンプルプログラムを見つけても対象のバージョンが古く、「これでいいのかな・・・」という不安があるからでした。 そういう問題意識から、 Chainer の基本的なプログラムの形を示した本があれば、役にたつと思っていました。そんな中、2016年の4月に「R で学ぶクラスター解析」の出版の際にお世話になったオーム社の T 氏から「ベイズ統計か Deep Learning 関連で何か書きませんか?」と話をいただき、私の上記の考えを話したところ、この方向で執筆することになりました。 注意したのは、とにかく早く書き上げて出版することでした。Chainer のことですから、どうせすぐにバージョンは上がるし、今の調子で Chainer が広まれば、すぐに本書は無駄な本になるからです。また類似の書籍も発行されることも十分考えられました。当初、10月出版予定だったのですが、「それでは遅い!」と思って、もう面倒な話はしないで、簡単に書いて、結果、9月9日に発売という形にできました。早く書き上げるという目標は達成できたはよかったのですが、やっぱり、やっつけで書いたので今は不満な点も多いです。書評などで、ひどく言われそうですが、仕方ないです。数ヶ月すればもう内容は古くなってるはずで、忘れてもらえると思うので、じっとしておきます。 また、何か執筆する機会がいただければ、今度はキッチリ書きたいと思います。 2016年9月13日 いくつか誤りが見つかりました。すみませんでした。 2016年11月7日 p.24 の図2.3 の上添え字が図2.1 と統一されていませんでした。図を直した関係で、p.24 の最後の式、p.25 の1,2 行目の式も少し修正しました。正誤表。 2016年11月10日 p.24 の図2.3 の第 l+1 層のまん中のユニットの添え字に k を使っていますが、それだと、 E_k の添え字と混乱してわかりずらいので、 h にしました。この結果、p.25 にある a_k^{(l+1)} の部分は、みな、a_h^{(l+1)} となります。\sum_k の部分も \sum_h になります。p.24, p.25 は式の修正が多いので、11月7日の分とまとめて、p.24--25 の修正版のテキストを作りました。正誤表。 2016年11月11日、p.101 の dropout について誤った記述がありました。正誤表。 2016年12月5日、軽微な書き誤りが2点見つかりました。正誤表。 2016年12月6日、軽微な書き誤りが1点見つかりました。正誤表。 2017年1月4日、第4版をもらいました。上記の誤りは全て修正されました。 2017年7月10日、p.25 最後の式2つに間違いあります。正誤表。 |
|
「R で学ぶクラスタ解析」 新納浩幸、オーム社 (2007) Amazon のページはここ 本書の中で使ったプログラムとデータはここ 今年の最初の頃に、オーム出版の方から、ある本の執筆について声を掛けて頂きました。ただそのテーマには、あまり興味がなく、断る代わりに、この本の内容を提案したところ、執筆 OK となりました。R が近頃注目されているので、R 関係なら売れると判断されたのかもしれません。 私自身、R は 10年近く使ってきており、研究のためのメイン言語もC や Perl から徐々に R に移ってきています。ここ数年は R しか使っていません。ただそれほど使っている割には、細かいことは知りません。ベクトルと行列が少し扱える程度です。ただそれだけででも、十分役立っています。この点は、本書で示したかった点の1つです。R は、所詮、研究のための道具であって、研究に使えればよいはずです。ベクトルと行列が扱えるだけで、十分、役立つ道具になりえます。ですので、本書には R については必要最低限のことしか書いていません。ただここに書かれていることだけで、十分だと思います。それ以上のことが必要な場合は、 R を使うこと自体を疑った方がよいと思います。 本書のメインはクラスタリングの方です。ここ数年、クラスタリング関連の研究をしているので、学生とのゼミに使えるような本にできたらいいかな、っという感じで書きました。一応、メジャーな手法は解説しました。混合分布モデル、スペクトラルクラスタリング、pLSI、NMF などは細かい証明も付けました。私自身、一度理解していたつもりでしたが、もう一度細かく計算してみると、よくわかっていない点も発見できて良かったです。細かい証明は付録に回して、ざっと読んで理解できるようにしたつもりです。原稿は全部 TeX で書いたのですが、出版社の方で Word に直されたので、数式は汚いし、どこかで写し間違えがあるかもしれないとちょっと心配です。何か間違いあったらご指摘下さい。SOM 、情報ボトルネック、Co-Clustering、半教師有りクラスタリングなどなども入れていたのですが、R との関わりの部分で一貫した記述が難しくなって、最終的には省いてしまいました。クラスタリングの手法は多数あるので、全部解説するのはもともと無理だし、実は、学生のゼミ用という観点を意識して書いていたので、結局、この程度の内容に落ち着きました。 11月20日に完成した本を頂きました。22日発売だそうです。ただ、残念ですが売れそうもないです。値段が税別 3200円です。本の厚さと内容からすると、高いと思います。ただこれは出版社側が決めたことなので、すみません。私の儲けを考えたわけではありません。 何かご意見等あればメール下さい。 2009年4月5日、第2刷でました。うれしいです。 2013年3月、第3刷でると聞きました。古いので、これで終わりかな・・・ |
|
「入門 Common Lisp - 関数型4つの特徴とλ計算」 新納浩幸, 毎日コミュニケーションズ (2006). 今年は本を2冊執筆するという目標(多分、達成不可能)があって、昨年の終わり頃に出版社の方に、出版したい本を提案しました。私が提案する内容はほとんどボツになります。今回もそうでしたが、編集者の方と議論しているうちに、「Lisp の本を書いてみませんか?」という提案がありました。近頃、Haskell が注目されているので、関連する線をねらったのだと思います。 Lisp は松下電器にいたときの私のメイン言語だったので、それなりに知ってはいたので OK しました。ただ、「Lisp の入門書ではない」「xyzzy と関連させる」「xyzzy のマクロを作る本ではない」といくつか制約を言われて、どういった内容の本にするのかわかりませんでした。編集者の方も具体的な案は持っていなかったようで、なかなか方向が決まりませんでしたが、私の方で色々考えて、「Lisp を使って関数型言語を解説する内容」という方向性を提案したところ、この方向で決まりました。多分、編集者の方も、もうどうしようもなくなったのだと推測します。 ですので、購入する人は ・ Common Lisp の入門書ではない ・ xyzzy とは関係ない ことに注意して下さい。 「関数型言語を解説する内容」といっても曖昧ですが、私なりに関数型言語の特徴と考えられるもの4点を解説することにしました。他にも特徴はあるのでしょうけど、難しすぎるのはよくないという方針があるので、この程度にしました。内容と方向が決まれば、執筆はすぐ終わりました。ただλ計算の辺りに少し時間がかかりました。どのような構成で、どの程度まで書くかが難しいかったのでした。Common Lisp で Y-combinator を書いた書籍は見あたらなかったので、この辺りは、誰かの参考にはなるかな、っとは思っています。 とりあえず書き終わって、その後は大学の講義が忙しくて、すっかりこの本のことは忘れていたのですが、数ヶ月後に急にドタバタと校正がはじまって、あっという間に、出版されました。驚きました。今、冷静に読み直してみると、細かい点で不満は多いですが、私としてはまあこんなものと納得しています。ざっと斜め読みすると、とっつきにくいので、多分、売れないです。出版社および編集者様、どうもすみませんでした。ただ、内容的には特に陳腐化することもないでしょうから、数年後に第2刷が出ることが目標です。 正誤表は出版社の方でまとめると思うので、ここには置きません。 (2006年11月12日、出版社の方で正誤表公開されていました。) 最後に、表紙の鳥の絵は、出版社の方で、既に決められていました。絵を使うなら、次回は、ぜひ私自身で描かせてもらいたいものです。 2006年10月17日、、、、後悔と懺悔 大変な勘違いを指摘されました。すみません。 この件は出版社の正誤表には記載がありません。 (1) p.68 のなかで、(eql 'dog 'Dog) で nil になっている。 Common Lisp ではシンボルの大文字と小文字は区別されない。 Emacs Lisp では区別されるので、xyzzy でも区別される。 すっかり忘れていた。 (2) p.70 で、while を解説している。 xyzzy では while はあるけど、 Common Lisp では while なんかない。 これも Emacs Lisp とゴッチャになっていた。 そもそも繰り返しなら do を解説すれば簡単だった。 2007年11月13日 末尾再帰のフィボナッチ数列 ある方から末尾再帰を解説するなら、フィボナッチ数列を末尾再帰で書いて、その効果を示した方が本の趣旨にあっているという指摘を受けました。その通りでした。その方が示してくれたコードは以下です。 (defun fib (n) (iter 1 n 0 1 1)) (defun iter (m n x y z) (if (= m n) y (let ((u y) (v z)) (iter (1+ m) n u v (+ u v))))) コメントありがとうございました。 2009年2月24日、出版社より「オンデマンド出版」という形にするという連絡受けました。売れないので、しかたないです。この本も私にとっては良い思い出です。 |
|
「Excel で学ぶ確率論」 新納浩幸,オーム社 (2004) 本当は、プログラミング言語としての VBA、統計解析ソフトの作成、という流れの本を 書きたかったのですが、この案は reject されました。どうも時代を読む目が私には ないようです。 出版社の人と話し合っているうちに、「Excel で学ぶ 〜」シリーズの1つで、確率論の 話を書きませんかという提案があり、確率モデルには興味あったので、引き受けることに しました。内容は問題なく、どんどん書けたのですが、Excel の使わせ方が問題でした。 いろいろ悩んで、結局、ありきたりですが、シミュレーションを行うという形にしてみました。 Excel の操作の初心者( Ctr-Shit-End とか相対パスとか知らない人)にとっては、 本の中で行っている操作はきっと何か得るものがあるのでは、っと思います。 ただ「はじめに」でも書いていますが、Excel での操作はお遊びだと思ってよいです。 確率論の入門書として考えてください。確率論の入門書として見てみると、 私なりには、結構、自信あります。「確率変数は標本空間内の要素を数値化し、 その数値の集合を定義域とする変数である」というとらえ方は、私なりには非常に すっきりしていて、そう考えることでいろいろなことが急にわかりやすくなると思っています。 重版されるのがとりあえずの目標です。 現在までに見つかった誤りは、 正誤表 (06年10月25日版) 正誤表 (06年11月20日版) 正誤表 (06年12月20日版) に書きました。どうもすみませんでした。他に誤りあったり、ご意見あればメールください。 今年は3冊本を書きました。おもしろかったです。来年も1冊くらい書きたいです。 そのときは、、、VBA の本だといいのですが、、、。 マイクロソフトを応援するわけではないのですが、とにかく Excel はすごいソフトだと 思います。 Excel を作った人あるいは表計算ソフトを考えた人は、天才だと思います。 |
|
「入門RSS Webにおける効率のよい情報収集/発信」 新納浩幸, 毎日コミュニケーションズ (2004). 一時期、研究のために、ニュースサイトからニュース記事を自動抽出 するプログラムを作っていて、その関係から RSS の存在を知りました。 今年になって blog が急にはやりだし、blog の更新情報の発信にも RSS が利用されていることを知りました。そこから急に、興味が出てきて、 RSS についていろいろ調べておりました。 当初、出版社には、RSS の話ではなく、Perl が 5.8 になって Win32API のモジュールが使えるようになったので、Perl と Win32API の モジュール及び Visual Basic を使った Windows プログラミングと言う テーマで本を書きたいと提案したのですが、reject されてしまいました。 # GUI を VB で作って、処理の中身を Perl で作るという手法です。 # 複雑な処理が可能な Windows プログラムを簡単に作るというのがウリです。 # 売れると思ったのですが、、、、どこか出版してもらえませんか? そのときに担当者の山口氏から「専門の自然言語処理関係で何か提案ないの?」 と言われ、そういえば、近頃、blog がはやっているし、RSS について まとまった書籍はないので、「RSS についてはどうでしょうか?」 という話をしたら、即、accept になって書くことになりました。 実は、この話とちょうど並行して別の本の執筆も決まって(来年には出ると思います)、 あまり時間をかけられない状況になってしまい、もうやぶれかぶれの短期決戦で、 ボロボロになる覚悟を決めて、1ヶ月で書くことを宣言しました。 本当に辛い1ヶ月でしたが、なんとかまとめることができました。今考えると、奇跡です。 2004年、アテネオリンピックの直前に書き上げることができました。 野口みずきの金メダルと同じくらいに感動しました。 書き上げてから出版まで3ヶ月もかかったのは、やっぱり1ヶ月ではいろいろなところが ぼろぼろで、担当者の山口氏にいろいろ指摘されたり、修正してもらったためでした。 なんとか形になったのは山口氏のおかげです。 心より感謝しております。 「はじめに」でも書いていますが、ちょっと知っている人にとっては、当たり前のことしか 書かれていないと思います。入門書ですから。買う人はこの点、気をつけてください。 この分野は流れが速いので、1年後には、たぶん廃版という感じですが、 私にとっては一生の思い出になりました。大切に保管しておこうと思います。 11月30日、出版社から正誤表が公開されました。 どうもすみませんでした。他にも間違いあればご指摘ください。 12月21日、第2版が完成しました。上記の誤りは直っています。 2008年9月10日、出版社から絶版の知らせを受けました。もう完全に陳腐化した内容なのでしかたないです。いい思い出になりました。 |
|
「数理統計学の基礎 よくわかる予測と確率変数」 新納浩幸, 森北出版 (2004). はじめにと目次 Amazon ではこちら 筆者から少しコメント 2年くらいノートしていたものをまとめてみました. 執筆は半年くらいでした.私が最初統計学を勉強 したとき,確率変数とは何かがよくわかりませんで した.勉強を進めてきて,確率変数が何を表してい るのかがわかったとき,1つ大きな壁を越えたような 理解の実感がありました.そのあたりを目標に書い てみました. 試行の結果は現実世界.現実世界をある観点から みて数値化したものは数値の集合.その集合を定義 域とする変数が確率変数.変数の値には現実があり, ある事象に対応している,っとそんな捉え方をしています. 現在までに見つかった誤り(第1刷)は、 正誤表 (06年10月23日版) (もうひとつ前のバージョン) 正誤表 (07年01月23日版) (ひとつ前のバージョン) 正誤表 (07年11月06日版) (最新バージョン) に書きました。どうもすみませんでした。他に誤りあったり、ご意見あれば メールください。 正誤がどんどん、増えるので、2006年9月19日からは、修正した箇所に 日付を入れることにしました。 # 2004年9月1日,とんでもない誤りを指摘されました.p152の例題の解答で # 対数とるの忘れています.本当にどうもすみませんでした. 2008年3月25日、やっと第2刷でました。上記の誤りは直っています。 2011年7月21日、まさかまだ見つかるとは・・・ 第2刷での誤りは以下です。 正誤表(2011年7月21日版) 2013年4月、急に第3刷でると連絡受けました。「急なので修正なしでお願いします」ということで上記の部分は直っていないと思います。 |