Shop now Shop now Shop now Shop All Amazon Fashion Summer Savings Up to 25% Off Cloud Drive Photos Shop now Learn More Shop now Shop now Shop Fire Shop Kindle Oasis Listen in Prime Shop now Learn more

Customer Reviews

3.5 out of 5 stars2
3.5 out of 5 stars
5 star
4 star
3 star
2 star
1 star
Format: Paperback|Change
Price:£22.99+ Free shipping with Amazon Prime

Your rating(Clear)Rate this item
Share your thoughts with other customers

There was a problem filtering reviews right now. Please try again later.

on 4 September 2009
First off - the positives.

Coming into this book I had little knowledge of neural networks. I knew a little about how they were supposed to work, but with no real background trying to write one from scratch was an intimidating task. After leaving this book, I understand the concepts a lot better, and would be able to understand well written code in other peoples neural networks. But I think the broad reality is that writing one from scratch is always going to be challenging. But I understand the concepts, and neural network types and training methods, etc to know what kind of network I'd need to use in a given scenario, and how to train (or not) it.

The negatives? Well its clearly a very hastily written port of the Authors own "Introduction to Neural Networks for Java". The code is horribly outdated (the book was released in 2009, so there's no excuse)- for example not using operator overloading instead of "Add" and "Multiply" static methods in a "Helper" class? No use of extension methods instead of the obligatory Helper classes to aid readibility? And there were a few cases where a hint of LINQ would make the code easier to read, more maintainable and potentially more efficient. Now I know this isnt a "Teach C#/LINQ/whatever book", its a "Teach Neural Nets" book, but to qualify it with "for C#" means you should be using appropriate language features, and not lazily porting line by line from a Java codebase.

Add to that the formatting errors that appear all over the place (using Console.Writeline to output, then the example output appearing wrapped all on one line - not a major crime, but if you're *reading* the book as opposed to using it whilst running the code it is a problem), the flat out errors (creating a class called ErrorCalculation on one page, and from there on referring to it as CalculateError) mean that this book makes the subject (which is already complex) more difficult to follow due to the little errors.

To add insult to injury, there is no source code CD, and visiting the authors website to get the source is much like reading the book - more difficult than it should be - the source code isn't under the "Source code" section that you'd expect. The source code provides a reasonable starting point, but as mentioned is simply a line by line Java port, so expect Java conventions (i.e. no new line for { which is the default in C# - a minor gripe I know, but if your writing for C# coders you probably want to follow C# guidelines).

All in all, a reasonable book for an "Introduction to Neural Networks", but only an average book for an "Introduction to Neural Networks FOR C#".
0Comment|12 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 17 September 2009
I agree with N Danson's review to a degree, but more with DiJuMx's review of the java version

The book starts with basic explanations based on neurons that fire when the weighted sum of inputs exceeds a threshold. However it keeps on using the term threshold later when it's moved on to neurons that use continuous output scaling functions without explaining the switch. There's no significant explanation of the back propagation process. The text explains the first level of program, that calls on the classes provided on the web site, but does not explain how those classes are structured or operate. There is a Tic Tak Toe and a "predict the S&P500" example, but mostly the neeural net examples are exclusive OR or visual pattern recognition. The examples report their final error after training, but not the weight values selected, which seemed odd to me.

You'll have to work to get an understanding the implementation and theory of neural nets, but if you want working programs, and a framework that allows you to build your own nets without needing a deep grasp of the theory, its a reaonable choice; most alternatives are either all maths and theory, or C++, as far as I can see.

I wanted to learn how NN programs work, to transfer the knowledge to a different environment, and have spent about a week trying to figure that out from the bottom up by single-stepping through the code. Its possible, but hard work, and it could have been so much easier with some documentation of the library, say in an appendix. The C# seems quite advanced to me, which tends to spread "the important bit" over a wide range of the code, some of which is activated automatically, which may make going from the overall plan to the details eaiser, but which makes it harder to pull together an overview of the plan from the pieces.

You get examples of other programming approaches, such as genetic algorithms and simulated annealing optimisers applied to planning routes through a group of towns, and a neural net-driven web search robot as well.
0Comment|Was this review helpful to you?YesNoReport abuse