Nippashish posted:I'd call it "drive by comments" rather than "endless support", but thanks It seems like it's working a lot better now than last time you posted too, what ended up fixing it? Surprisingly, switching my optimizer from ADAM to SGD made a huge difference. I didn't really touch network structure. Would love to be able to go back to it, since I'm still occasionally running into numerical problems (nans on long runs), but at least it's covering and making representations that are sensible.
|
|
# ? Mar 13, 2016 18:29 |
|
|
# ? May 9, 2024 18:24 |
|
It has been quite a while since I've posted anything about all of the various odds and ends that I've been working on. I've actually been cleaning up the Beagle Entertainment System codebase quite a bit over the past few weeks... mostly bringing in C++ features to simplify the code. Things like changing char * and char[] to std::string and replacing linked lists with std::vector. I also reworked the internal caching on the GUI front-end so that all of the menu options and information aren't pre-rendered at start. They will dynamically render the panels and menu items as needed and cache them only as long as they are needed. This will allow a much larger number of games to be added to the system. Speaking of adding games, I'm doing away with the FAT partition for holding and configuration game ROMs. The user used to have to take the microSD card, insert it into a Window/Linux PC, copy ROMs into the right places, and edit XML files to add those games to the front-end GUI and configure the button mapping of their controllers. I've moved to a sqlite3 database to do away with the XML edits. But, I needed to give the user some way to add/remove ROMs, edit game entries, and configure controllers. I thought about this for a bit, and I finally decided to add a web-based interface. The BeagleBone Black can be powered via a USB cable connected directly to your PC, and it will treat the USB cable as a network cable. This means that your host machine (the PC the BBB is plugged into) can browse to a particular local IP address and reach a web server running on the BBB. You can literally plug the BBB into your PC, open a web browser on the PC, browse to the BBB's IP, and start configuring BES. I'm using Node.js on the BBB side, which serves up some jQuery-based pages to the browser. Add/Remove ROMs page (with disk space usage): Edit ROM entry page (complete with menu entry and info entry previews using HTML5 canvases): Controller configuration page: I didn't know web development with Node.js and jQuery two weeks ago, but I know a lot about it now! In other news: - I got married! And I now have a nine year old step-daughter! They're both awesome. - I got a new dog! It's a Corgi, and she's awesome. - O'Reilly Media contacted me about doing a video tutorial series on the BBB for their portal! - I may actually finish my PhD soon! - I'm not dead!
|
# ? Mar 14, 2016 23:45 |
|
Made a neat little web based synth that can sync to your novation launchpad if you have one plugged in (and are using Chrome) http://ell.github.io/grid/ Cool example: http://ell.github.io/grid/?state=ey...WUiOiItMTkifX0= (Warning: will play sounds)
|
# ? Mar 15, 2016 01:42 |
hendersa posted:- I got married! And I now have a nine year old step-daughter! They're both awesome. The best project: family life! Post screenshots!
|
|
# ? Mar 15, 2016 02:11 |
|
Neurion posted:The best project: family life! Post screenshots! You want 'em, you got 'em. Family: Dog: https://www.youtube.com/watch?v=jVOvKdIOqaQ
|
# ? Mar 15, 2016 02:55 |
|
This thread is now about posting pictures of your dogs a/o cats. Ideally pictures of them licking your ear/face adorably. (you see, dogs are a thing you're working on, because you train them, so they're projects - and cats are an ongoing project in not strangling the cat when it barfs in your shoes)
|
# ? Mar 15, 2016 04:53 |
|
Oh well in that case. Here is my cat giving me a five because I told him to. He knows quite a few tricks, but is terribly afraid of heights so the cat tree I just bought is now a cat table. I'm also working on a canvas-based image editor but it's not a fluffy animal that does tricks so people are generally less impressed by it.
|
# ? Mar 15, 2016 14:28 |
|
Shalinor posted:This thread is now about posting pictures of your dogs a/o cats. Ideally pictures of them licking your ear/face adorably. She's actually chewing on my ear in that picture, which is why I'm making a face like Popeye. The pup, while cute, is a newcomer to my development efforts. The real hero is the cat, who has been by my side through the entire process:
|
# ? Mar 16, 2016 03:55 |
|
Hey guys, I love pets and family as much as the other guy, but could we please keep it related to computer projects? (You know, screenshots of stuff we're working on) I would hate to see a years old topic closed for derailing
|
# ? Mar 16, 2016 09:18 |
|
Kid CUDA posted:Hey guys, I love pets and family as much as the other guy, but could we please keep it related to computer projects? (You know, screenshots of stuff we're working on) What if my dog is named SQL?
|
# ? Mar 16, 2016 21:00 |
|
Do you ever find yourself shouting 'no SQL! Bad!'
|
# ? Mar 16, 2016 22:36 |
|
baka kaba posted:Do you ever find yourself shouting 'no SQL! Bad!' OK, you turkeys. You heard Kid CUDA. Get back to work. I blame Shalinor for being a bad influence. The BES web interface is now up on GitHub: https://github.com/hendersa/bes-config-node I also recently did some troubleshooting on the BES Cape PCB design (an SNES controller interfacing board with a built-in real-time clock) and finally made that available on GitHub, too: https://github.com/hendersa/bescape That rendering was created online from the Gerber PCB files for the cape board using the Mayhew Labs 3D Gerber Viewer: http://mayhewlabs.com/3dpcb Now I just need to finish the database support in the main BES binary. And still generate XML files for the stand-alone BeagleSNES emulator to use for configuration. And work on the firmware for the BES Cape board. And validate the generated PCBs with unit testing of each subsystem. And write a new manual. Oh god there is still so much to do...
|
# ? Mar 17, 2016 04:26 |
|
baka kaba posted:Do you ever find yourself shouting 'no SQL! Bad!' Yes. And also "SQL DROP the TABLE!"
|
# ? Mar 17, 2016 14:56 |
|
kayakyakr posted:Yes. And also "SQL DROP the TABLE!" I just thought of the words "SQLex DROP it hard" and: loving destroy me
|
# ? Mar 17, 2016 15:19 |
|
Jewel posted:I just thought of the words "SQLex DROP it hard" and: loving destroy me lol
|
# ? Mar 17, 2016 17:31 |
|
Kid CUDA posted:Hey guys, I love pets and family as much as the other guy, but could we please keep it related to computer projects? (You know, screenshots of stuff we're working on) You realize Shalinor is a mod right?
|
# ? Mar 17, 2016 17:46 |
|
Zaphod42 posted:You realize Shalinor is a mod right? TECHNICALLY, I could be overridden if another mod pops in here and decided kitties and puppies are dumb. But who would do that. I mean really. (Seriously though it was meant as a short offshoot - please mostly get back to posting Cool poo poo)
|
# ? Mar 17, 2016 17:50 |
|
Not much of a screenshot but I decided to spend a few evenings learning Rust. I've built my first program to solve the iOS game Wordbrain. It's multi-threaded and fairly optimized using Tries. Overall an amazing language, I'm so impressed with the fact that I haven't gotten any runtime errors thanks to the wonderful compiler and borrow checker.
|
# ? Mar 18, 2016 05:45 |
|
Shalinor posted:Not of this forum, though. If the occasional puppy pics (especially corgis) show up, I would be quite happy.
|
# ? Mar 19, 2016 18:08 |
|
I'm still trying to play chess with neural networks. Hacker news found my site a couple weeks ago so I was able to record a few thousand games, and I decided to make a browser for them. Its online here: http://spawk.fish/browse/.
|
# ? Mar 20, 2016 16:15 |
|
Made another fractal generator. This time I am trying to make a Buddhabrot, but it looks more like a dust bunny: Source code here. My program isn't yet able to handle the large amount of samples it seems that you need for clear renderings.
|
# ? Mar 20, 2016 18:39 |
Athas posted:Made another fractal generator. This time I am trying to make a Buddhabrot, but it looks more like a dust bunny: I am hereby publicly trademarking the term "Mendelbrot," which is a fractal that looks like a guy splicing cuttings from one plant onto another plant. Do not steal.
|
|
# ? Mar 20, 2016 23:38 |
Nippashish posted:I'm still trying to play chess with neural networks. That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly.
|
|
# ? Mar 21, 2016 18:23 |
|
Chunjee posted:That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly. I just won a game. I made some blatantly obvious errors and so did spawkfish. I wouldn't consider myself a very strong player, probably 1500-1600 elo range.
|
# ? Mar 21, 2016 19:03 |
|
Chunjee posted:That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly. I've played twice and won both times.
|
# ? Mar 21, 2016 19:08 |
|
Chunjee posted:That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly. I'm pretty sure his main strength right now is in intimidating the hell out people in the opening, because he's got those down pretty solidly. If you just stick around then he will usually screw up badly at some point in the mid game and you can pick him apart from there pretty easily. I've written way more words than you probably care about analyzing his strength here: http://spawk.fish/posts/2016/03/spawkfish-vs-stockfish/. The current version is stronger than the one I analyzed, but I haven't fixed any of the fundamental problems so he's still prone to losing for the same reasons. He is also sometimes hilariously bad at executing checkmate. Checkmates are actually a really annoying problem, because people almost always resign before checkmate actually happens, so there are very few checkmates in the training data I have. Nippashish fucked around with this message at 22:20 on Mar 21, 2016 |
# ? Mar 21, 2016 22:05 |
|
I'm curious why you don't just have it play against itself (or a diverse array of variants of itself) for more training data.
|
# ? Mar 21, 2016 23:03 |
|
Eyes Only posted:I'm curious why you don't just have it play against itself (or a diverse array of variants of itself) for more training data. I've thought a lot about this, but I'm a bit apprehensive about actually doing it because of lack of diversity. In the go paper from deepmind (which was the inspiration for this project) they say that the policy they learned from human games works better in their tree search than the policy they get after several rounds of policy improvement from self play, even though the new policy beats the old one by a wide margin. Even playing against many previous versions wasn't enough for them to overcome this. This being a diversity problem makes sense to me on a lot of levels; from the technical side the policy gradient objective doesn't account for an adversarial environment and also from the intuitive side when you think about how a single great player can change how a game is played by coming up with a style no one has ever seen before and dominating until people figure out how to deal with it. Something I do plan to try is playing against stockfish to generate training data. Stockfish relies mostly on search so I'm less worried about lack of diversity, because search should be able to find and exploit any holes that emerge in spawkfish's strategy when they show up. The only reason I haven't done this yet is time. It takes a long time to train the networks and all of my GPUs are tied up testing out different ways of making the supervised learning part stronger right now. Nippashish fucked around with this message at 23:40 on Mar 21, 2016 |
# ? Mar 21, 2016 23:37 |
|
Interesting, I haven't read the AlphaGo paper yet but I imagine the story is a bit different for your pure-NN setup. Their hybrid approach means they'll be able to tree search at the end of the game when the tree is much smaller. Without tree search or some other type of looping search I suspect it will be hard for any feedforward network to generalize across the huge range of endstates. At least not without a fuckton of data. What made you choose 2x8x8 for the output instead of [piece index] + 8x8 or [piece] + [nth possible move] or some other encoding?
|
# ? Mar 22, 2016 03:09 |
|
Eyes Only posted:Interesting, I haven't read the AlphaGo paper yet but I imagine the story is a bit different for your pure-NN setup. Their hybrid approach means they'll be able to tree search at the end of the game when the tree is much smaller. Without tree search or some other type of looping search I suspect it will be hard for any feedforward network to generalize across the huge range of endstates. At least not without a fuckton of data. AlphaGo is apparently quite strong even using only the policy network. The nature paper has this figure: which shows the policy network alone being ~3d level. 3d is a long way from pro ranks, but is still pretty strong. This makes me think it should be possible to train a purely feedforward chess player that doesn't make absurd blunders the way spawkfish does right now. Eyes Only posted:What made you choose 2x8x8 for the output instead of [piece index] + 8x8 or [piece] + [nth possible move] or some other encoding? That was the most convenient format for the data. I'm training a 64x8x8 output version now where I don't factor the origin and destination squares for the move and that looks so far like it will be a bit stronger. I like the [piece index] x 8 x 8 idea though, I'll give that one a try when I have some spare gpu cycles.
|
# ? Mar 22, 2016 10:44 |
|
When you do these ML projects, do you write your own from scratch or use open source libs and if so what do you use?
|
# ? Mar 22, 2016 19:12 |
|
netcat posted:When you do these ML projects, do you write your own from scratch or use open source libs and if so what do you use? I'm using tensorflow for the networks with some homegrown stuff around it for processing the data and making the networks do what I want.
|
# ? Mar 22, 2016 21:47 |
netcat posted:When you do these ML projects, do you write your own from scratch or use open source libs and if so what do you use? Chalk up another vote for TensorFlow. I've played with most of the Python NN libraries (and a few of the Java ones). It's my favorite by far. Less frustrating than Theano. Just the right amount of abstraction without losing robustness. I'm still terrible at the subject, though, so take what I say with a grain of salt.
|
|
# ? Mar 23, 2016 06:18 |
|
Some dumb images I programmed.
|
# ? Mar 23, 2016 06:30 |
|
Sex Bumbo posted:Some dumb images I programmed. That's a really cool effect, reminds me of water colors, what's the code look like?
|
# ? Mar 23, 2016 20:42 |
|
The code to generate them is extremely simple, but it was actually meant to be an exercise in writing a DX12 engine for messing around in my spare time. I was inspired by the top result here http://codegolf.stackexchange.com/questions/22144/images-with-all-colors code:
code:
|
# ? Mar 23, 2016 22:12 |
I don't have any actual screenshots, yet, but I do have some fairly amusing text. Inspired by Taybot, I went exploring and found some code for using RNNs to produce readable text. I had been planning to start work on a sort of Markov++ project this weekend, but I got distracted by the RNN code. Now, I think my bot is trying to write Finnegan's Wake: "Is’s ack prembated, and he knowarry smelied eyes so hapfed to think of him, suddented on my legs I feel the peoto reseants all." Maybe it's A Clockwork Orange.
|
|
# ? Mar 26, 2016 18:50 |
|
Over the past few weeks, I have been taking an hour here and there to clean up the code on all of the various projects I have going on. I wanted to make sure everything that I had was checked into Github so that the latest and greatest was available. As I was digging through some Eagle PCB design files for my "BESCape" (SNES/RTC cape board for the BeagleBone Black), I noticed an obvious problem on the schematic. I pulled out one of the PCBs I have here, tested it, and sure enough, there was a problem. I fixed the schematic, rerouted the traces, checked in the design files, and sent off a request for new PCBs to be fabbed in China. Then, I forgot all about it and went on with my day. Yesterday, this showed up via DHL: I decided to crack open the packaging on the new PCBs and try a unit test to see if the previous issue was addressed. Since someone out there might be interested in watching me solder the thing, I decided to try something new: That is a GoPro Hero, set up on a cheap $10 tripod. It actually did a pretty good job of recording my soldering and unit testing, which I sped up about 7x and uploaded to YouTube: https://www.youtube.com/watch?v=WmHq9iZGQJY Apparently, if you spend a lot of time swearing at surface-mount components as you solder them on with a standard soldering iron, you eventually get pretty good at it. The soldering, I mean. I guess my swearing is coming along pretty well, too. I stick to components in a 0805 package or bigger, so it is still feasible to solder SMT components by hand. In other news, I'm a Google Summer of Code mentor for BeagleBoard.org again this year, and the project proposal deadline has just passed. Half of India has submitted proposals for me to evaluate (just like last year). I don't know why I keep volunteering for this, but I do.
|
# ? Mar 27, 2016 01:29 |
|
I have a perhaps silly question: wasn't BeagleBoard always an advertising thing for their OMAP SoC? And haven't they completely shut down the OMAP wing because they couldn't sell anything? But they're still making BeagleBoards and apparently trying to support a community around it? Do you think the writing is on the wall for this, until some higher-up discovers the program still hasn't been shut down yet?
|
# ? Mar 27, 2016 01:32 |
|
|
# ? May 9, 2024 18:24 |
|
Suspicious Dish posted:I have a perhaps silly question: wasn't BeagleBoard always an advertising thing for their OMAP SoC? And haven't they completely shut down the OMAP wing because they couldn't sell anything? But they're still making BeagleBoards and apparently trying to support a community around it?
|
# ? Mar 27, 2016 02:06 |