Understanding Machine Learning - free book

Machine learning is one of the fastest growing areas of computer science, with far-reaching applications. The aim of the textbook is to introduce machine learning, and the algorithmic paradigms it offers, in a principled way.

The book, "Understanding Machine Learning: From theory to Algorithms", provides a theoretical account of the fundamentals underlying machine learning and the mathematical derivations that transform these principles into practical algorithms. Following a presentation of the basics, the book covers a wide array of central topics unaddressed by previous textbooks. These include a discussion of the computational complexity of learning and the concepts of convexity and stability; important algorithmic paradigms including stochastic gradient descent, neural networks, and structured output learning; and emerging theoretical concepts such as the PAC-Bayes approach and compression-based bounds.

Designed for advanced undergraduates or beginning graduates, the te…

Organizing your tasks, and design files

Men marry women wishing they will never change, but they do.
Women marry men wishing they will be able to change them, but they don't.
When I was young, even during my University studies, I was a real disaster in anything related to order and tidiness. My room was always a mess. Whenever my mother or any other would try to change my ways (even a little bit), I would say what many like me love to say: - "In the disorder, I know where everything is. When my mother makes some order, I can't find anything".

And to demonstrate that the half-joke at the beginning of this article is not true, I must say that I changed a lot since I married. My home won't appear in a decoration magazine, but it is not close at all to my young-days' complete-mess room.

The other reason I have to train me all the time to be a more tidy person is that I work in FPGA design. So if you are rolling your eyes thinking that order has nothing to do with design, and I'd better publish some …

Giant Hovercrafts - past and future


Can AI be Conscious?

by Bernard Murphy (*)

I found a recent Wired article based on a TED talk on consciousness. The speaker drew a conclusion that consciousness was not something that could ever be captured in a machine and was a unique capability of living creatures (or at least humans). After reading an article on the the TED talk and watching a related talk, I’m not so sure but I am fairly convinced that whatever we might build in this direction may be quite different from our consciousness, will probably take a long time and will be plagued with problems.

The TED event (speaker Anil Seth, Professor of neuroscience at the University of Essex in the UK) is not posted yet, but there is a more detailed talk by the same speaker on the same topic, given recently at the Royal Institute, which I used as a reference.

First, my own observations (not drawn from the talk). AI today is task-based, in each case skilled at doing one thing. That thing might be impressive, like playing Go or Jeopardy, providing tax advi…

VHDL arbiters - part II

This tutorial was designed using Quartus and Modelsim-Altera

In the previous installment, we defined what a HW arbiter is.
In this entry of the tutorial, we will see a simple implementation of a VHDL arbiter.

The arbiter has three inputs and three outputs.
The logic is very simple. If the first master (master 0) asserts a request, it is awarded grant. Master 1 is given grant only if it requests the bus and master 0 doesn't request the bus.
Master 2 is awarded grant only if it requests the bus and neither master 0 nor master 1 request the bus.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32libraryieee; useieee.std_logic_1164.all; useieee.numeric_std.all; entityarbiterisport ( clk:instd_logic; rst:instd_logic; -- inputs req:instd_logic_vector(2downto0); -- outputs gnt:outstd_logic_vector(2downto0) ); endarbiter; architecturertlofarbiterisbegin arbiter_pr:process (clk, rst) beginif (…

FPGA for dummies - free book

If you are completely new to FPGAs, or if you want a refreshing high level view of what FPGAs are and what are the future trends in the field, you can download this free book from Altera site:

FPGA for dummies

The book is an all-text introduction to this exciting field, do not expect to find real examples nor VHDL code in the book.

MIF_Gen - A Matlab Utility

Many times I find myself in the need of generating data for testing. We need data for verification, either done on simulation or on the real target.

One easy way to test our system is to generate data vectors on RAM. Altera RAM IP includes the ability to initialize RAM contents during power-up by means of a .hex file.
One problem of the .hex file format is that it is quite unreadable for humans. Altera came to our rescue with the .mif format, which is text based and very easy to understand.

The application I present below initializes a memory (generating an .hex file). The size and width of the memory are parameters. The Matlab application generates both a init_mem.mif and a init_mem.hex file.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52%-------------------------------------------% Generate Parameters ram_size = 256; % In words word_size = 16; % Can be 8, 16, …