Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Machine learning and binary/executable

  1. Apr 9, 2016 #1

    fluidistic

    User Avatar
    Gold Member

    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?
     
  2. jcsd
  3. Apr 9, 2016 #2

    phyzguy

    User Avatar
    Science Advisor

    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.
     
  4. Apr 9, 2016 #3

    fluidistic

    User Avatar
    Gold Member

    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.
     
  5. Apr 10, 2016 #4

    phyzguy

    User Avatar
    Science Advisor

    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.
     
  6. Apr 10, 2016 #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.
     
  7. Apr 10, 2016 #6

    fluidistic

    User Avatar
    Gold Member

    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?
     
  8. Apr 10, 2016 #7

    phyzguy

    User Avatar
    Science Advisor

    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.
     
  9. Apr 10, 2016 #8

    fluidistic

    User Avatar
    Gold Member

    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.
     
  10. Apr 11, 2016 #9

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    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 in to save my job.
     
    Last edited: Apr 11, 2016
  11. Apr 11, 2016 #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.
    Working for such a boss is actually tragic!
     
    Last edited: Apr 11, 2016
  12. Apr 11, 2016 #11

    FactChecker

    User Avatar
    Science Advisor
    Gold Member

    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.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Machine learning and binary/executable
  1. Error of execution (Replies: 1)

Loading...