Machine learning and binary/executable

Click For Summary
The discussion centers on the relationship between machine learning, specifically neural networks, and traditional program binaries/executables. It clarifies that while machine learning models, such as those used in computer chess or Go, rely on training to adjust synaptic weights, this process does not alter the program's binary itself. Instead, the trained model's weights are stored separately in a data file, which is not executable. When commercializing such programs, both the binary and the associated weight data file may need to be provided, but the weight data can be encrypted to protect proprietary information. The conversation also touches on the broader scope of machine learning beyond neural networks, mentioning various techniques and the potential pitfalls of overtraining neural networks. Overall, the key takeaway is that machine learning models and their training processes are distinct from the traditional executable programs, with implications for how they are shared and commercialized.
fluidistic
Gold Member
Messages
3,931
Reaction score
281
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
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
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.
 
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.
 
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.
 
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?
 
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
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.
 
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

Similar threads

  • · Replies 29 ·
Replies
29
Views
3K
  • · Replies 22 ·
Replies
22
Views
2K
Replies
59
Views
8K
Replies
29
Views
5K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 25 ·
Replies
25
Views
2K
  • · Replies 94 ·
4
Replies
94
Views
11K
Replies
6
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • Sticky
  • · Replies 13 ·
Replies
13
Views
7K