Machine learning and binary/executable

In summary: The examiner was convinced that my patent was just a rehash of stuff that had been done before, but he was mistaken.In summary, the machine learning algorithm in that patent is not related to neural networks in any way.
  • #1
fluidistic
Gold Member
3,949
264
I have a question about machine learning and the binaries/executables of programs. I'm not really understanding well how machine learning and programs are related. For instance in computer chess or go, they use machine learning (deep learning) to "train a model" or something like that, the more time and hardware they spend on this part, the stronger the program will be. My question can be shortened to the following one: is the machine learning independent of the program in the way that training the model more time does not change the binary/executable? Or the same code but training more time would produce a different binary?
 
Technology news on Phys.org
  • #2
These machines use neural networks which are trained by adjusting the synaptic weights. They don't run an algorithmic program which has a binary or an executable. They have a set of inputs, which can be something like pixels in an image or positions on the go board, and the inputs propagate through the neural network to produce a set of outputs. The training adjusts the weights of the multiple layers connecting the inputs to the outputs, and the adjustments of the weights improves the performance over time. I think the outputs of the neural network are fed into an algorithmic computer program of the conventional type, but the neural network is doing most of the work.
 
  • Like
Likes fluidistic
  • #3
phyzguy said:
These machines use neural networks which are trained by adjusting the synaptic weights. They don't run an algorithmic program which has a binary or an executable. They have a set of inputs, which can be something like pixels in an image or positions on the go board, and the inputs propagate through the neural network to produce a set of outputs. The training adjusts the weights of the multiple layers connecting the inputs to the outputs, and the adjustments of the weights improves the performance over time. I think the outputs of the neural network are fed into an algorithmic computer program of the conventional type, but the neural network is doing most of the work.
I see, so if I understand well, we can both have the same go or chess program and I can train it for a very long time and you would not benefit anything out of it. In other words, I can't send you a binary that contains all the information (weighted layers?) that I obtained from the training, within the go/chess program.
 
  • #4
You could read out all of the synaptic weights within the neural network, and that, together with the configuration of the network, is all of the information within the network. But it is a very different thing from an algorithmic program. Even the person who built and trained the network couldn't tell you from this information how the network would respond to a given input.
 
  • #5
The information about the learned weights is stored in a file and you could of course send that file to someone else. But that file is not an executable. You could call it a data file.
 
  • #6
DrZoidberg said:
The information about the learned weights is stored in a file and you could of course send that file to someone else. But that file is not an executable. You could call it a data file.
So say they commercialize or release a go program that uses machine learning and they trained it for a long cpu time, they would have to give both the binary and the associated file with the learned weights?
 
  • #7
It's a good question how you commercialize a neural network based machine. I don't work in this area, so I don't really know. It seems like a lot of effort goes into training the network and determining the best combination of weights, so if you are commercializing the machine you wouldn't want to just give away this information. So maybe the weights could be encrypted in some way so that someone can use the network without having access to the details of what's inside.
 
  • Like
Likes fluidistic
  • #8
Ok I just asked a go engine programmer, he told me it's either in the binary or in a data file.
Problem solved. :) Or better to say, question answered.
 
  • #9
Machine learning != neural networks.

Machine learning is a much broader concept than neural networks. In addition to neural networks, there are Bayesian belief networks, ant colony networks, and a host of other techniques.

My sole sordid adventure into creating and then patenting a machine learning algorithm is this abomination: http://www.google.com/patents/US6532305 . Note well: There is none of the neural network nonsense in that patent. Unlike neural networks, I used something sane. Like neural networks, my expired patent apparently claims everything.

What isn't in that patent is all of the good stuff that patent was supposed to have claimed. All the good claims were stripped by the examiner on the basis that those have been a separate patent. Our patent attorney vehemently agreed; that represented another ten thousand or more in the bank for his employer. In particular, all of the claims regarding detecting misfires in an automotive engine were deleted.

Unbeknownst to me, my employer's CEO at that time did not want (putting it mildly) new intellectual property that was outside the narrow domain of his PhD. Apparently I came **this close** to being fired for getting that patent. Our client and mid-management had to step into save my job.
 
Last edited:
  • Like
Likes Pepper Mint
  • #10
An example I can give the OP is what I learned 13 years ago about machine learning. I had to produce a simulation program using Q-learning. So my agent needed to learn to move all over the board and acquire the values (Q-values) and rewards (via correct moves) as well as punishments (incorrect moves e.g hit a stone or obstacle). It would start with randomized values in 8 directions and pick one that was most appropriate and based on Q-values obtained its final path would become optimal. That is, in the end the agent chose only one path to move from start to goal because it learned what Q-values were best to select for.
I also had some classmates doing different simulation projects in the same lab room. But that lab teacher gave them the source code, they added some new changes, ran the program and made the report. She didn't give me any. It was a sad memory. Yet that has helped learn to do stuff on my own. Later in life when I went out to work, I tried better to do things on my own because I know leaders always hid many things (materials, techniques etc) away in order to become people's lecturers. In competitive situations, stepping on others before public or chairmen's views to show oneself off is not uncommon.
It is not much actually because it was only about reinforcement learning as part of machine learning I had a chance to study but I think it will probably help simplify a tad the concept for you to move further on.
D H said:
...
Unbeknownst to me, my employer's CEO at that time did not want (putting it mildly) new intellectual property that was outside the narrow domain of his PhD. Apparently I came **this close** to being fired for getting that patent. Our client and mid-management had to step into save my job.
Working for such a boss is actually tragic!
 
Last edited:
  • #11
fluidistic said:
So say they commercialize or release a go program that uses machine learning and they trained it for a long cpu time, they would have to give both the binary and the associated file with the learned weights?
There are neural network programs where the program remains the same but the weight data changes as it learns. There are other programs with self-modifying code that changes as it learns. Both approaches, and mixtures of them are very broad subjects.

P.S. You keep mentioning that a program can be trained for a very long time. That is not always true. Neural networks can be "over trained". That means that the network weights are being tuned to match every detail of the inputs when you really want them to form generalities.
 
  • Like
Likes fluidistic

FAQ: Machine learning and binary/executable

What is machine learning and how does it work?

Machine learning is a subset of artificial intelligence that involves training computers to learn and make predictions or decisions without being explicitly programmed. It works by feeding large amounts of data into algorithms, which then use statistical models to identify patterns and make predictions or decisions based on the data.

What is the difference between binary and executable files?

Binary files are computer files that contain data in binary form, meaning they are composed of 1s and 0s. These files are not readable by humans and require a specific program or interpreter to be executed. On the other hand, executable files are binary files that have been compiled to be directly executed by the computer's processor. They often have a .exe extension and can be run by double-clicking on them.

How is machine learning used in binary and executable files?

Machine learning can be used in binary and executable files to analyze and classify data. For example, it can be used to detect malware in executable files by training algorithms on known malware patterns and then scanning new files for similar patterns. It can also be used to optimize code in binary files by identifying patterns and making suggestions for more efficient code.

Can machine learning be used to improve the security of binary and executable files?

Yes, machine learning can be used to improve the security of binary and executable files. It can be used to detect and prevent malware attacks, as well as identify and fix vulnerabilities in code. By continuously learning and adapting to new threats, machine learning can help improve the overall security of these files.

Is machine learning a threat to the security of binary and executable files?

While machine learning can be used to improve the security of binary and executable files, it can also potentially be a threat if it falls into the wrong hands. If hackers or malicious actors are able to manipulate or disrupt the machine learning algorithms used for security, it could lead to vulnerabilities in these files. Therefore, it is important to have proper security measures in place to protect against such threats.

Back
Top