soravux
The chip design expertise is provided by most electrical engineering departments, with courses usually named VLSI design, FPGA/ASIC development or microelectronics.
If you apply for a master's degree (in AI, for example), you can often mix-and-match speciality classes and ask for those chip design courses to be added to your cursus.
If you are a hands-on person curious about the matter, you can buy an FPGA (~50$ for entry-level) and follow a Verilog or VHDL tutorial online. Quickly put, an FPGA is a chip that can be "rewired" at will, very useful to learn or prototype before building a production chip.
[1] Zhang, Richard, Phillip Isola, and Alexei A. Efros. "Colorful image colorization." European Conference on Computer Vision (2016) http://richzhang.github.io/colorization/
http://multigrad.blogspot.com/2014/07/low-level-frenzy.html http://multigrad.blogspot.com/2014/06/fun-with-python-byteco...
I'm curious, what was the original use case for pyast64? Feels like we could apply it to genetic programming fairly straightforwardly.
Illusions are due to the deception of our vision priors. Our brain expects something, makes you see something this way, but it's not what is happening in reality (maybe because it was engineered to deceive those expectations, as the images in this thread link). This is because the mental model we have of a standard "sight" doesn't model well those examples, our brain was not trained to work this out, I guess because it has no advantages in doing so (in terms of evolution or learning as a kid). Our brain is only trained to extract information efficiently on "plausible images" (lit by sun-like light, taken on the earth, etc.), you can't feed it random noise or it will try to explain it with things it knows (which is called Pareidolia).
In machine learning vision, we re-learn, usually from scratch (or fine-tune), at each experiment. This generates (or modify) the priors learned. Think of the priors as the "default(s)" image (in terms of complex internal representation, not in terms of pixels) that helps you think about the problem at hand. If you have a motion detection/tracking problem, this optimal default information representation will be different from the default information most useful for classifying or segmenting.
What I want to say with those examples is that machine learning computer vision is prone to illusions, that is images that defeat (are too far away, or not well explained by) its internal representation space and/or default representation. Also, each algorithm (let it be neural networks, SVM, or anything, really) has a different internal representation, so different images will be illusions for them. An illusion for one model won't necessarily be an illusion for another one.
The thing is, we are far from mastering advanced machine learning, in the sense that we don't have optimality proofs for capacity, architecture and filters on deep neural networks for a given task, for example. There's a lot of recent research on those illusions--for example, adversarial examples or networks. It seems to indicate that those illusions are far from human vision illusions and seems to be due to the mathematical nature of machine learning, for example adding small noise (sometimes with a lower magnitude than the smallest representable value by standard images formats!) to a correctly classified image can result in a wrong and very certain prediction. The most proeminent viral example of this on the internet was the school bus becoming with high certainty an ostrich after some small noise was added to the image. Other examples can be found in the introduction of [1].
Executing x86-64 opcodes in Python – Genetic Programming case study
Fun with Python bytecode – Generate and modify it using evolutionary algorithms
Evolutionary algorithm to find Quake III's fast inverse square hack with Python
ZeroMQ was chosen as the communication library because it simply works and isn't bloated. No need to implement the state-machines for common patterns in our sockets, ZMQ does it and fast. It doesn't replace a standard socket, though, it only add a layer of functionalities over it.
While using it, we found some minor negative point such as delays needed by the socket upon shutdown, which require sleeps between unit tests, or the random port connector that is not random... But overall, ZMQ is a tool that saved us much developing time and should not be overlooked by distribution systems.