4 ms·
I love stuff like this, and I think "unreasonable" is almost an understatement. It's "unreasonable" mainly because it occasionally captures subtle aspects of t
by clickok 11y ago
I love stuff like this, and I think "unreasonable" is almost an understatement.
It's "unreasonable" mainly because it occasionally captures subtle aspects of the data source for "free".
If you've worked with procedurally generated content, Markov chains, and so on, you probably have had to perform a few tweaks in order to get plausible results[1].
From the article, an excerpt of the output from an RNN trained on Shakespeare:
Second Lord:
They would be ruled after this chamber, and
my fair nues begun out of the fact, to be conveyed,
Whose noble souls I'll have the heart of the wars.
Clown:
Come, sir, I will make did behold your worship.
VIOLA:
I'll drink it.
Sure, the individual blocks are similar to what you'd get from a Markov text generator-- but it gets that after a full stop, there comes a newline, a new character name, and a new text block.
To my eyes, this is a qualitative leap in performance.
It suggests that the model has figured out some things about the data stream that you'd normally have to add in by hand[2].
It's also unreasonable that the same framework works well for so many different data sources.
My experience with other generative methods has been that they were fragile and prone to pathological behaviour, and that getting them to work required for a specific use case required a bunch of unprincipled hacks[3].
It used to be that when a talk started to veer towards generative models, I'd start looking around the room, wondering whether I could survive the drop from any outside-facing windows.
But with RNNs using LSTM (or neural Turing machines!) you can consider incorporating a generative model in the solution you're putting together without having to spend a huge chunk of time massaging it into usefulness and purchasing time on a supercomputer[4]
1. I once wrote quick a Reddit bot with the aim of learning to repost frequent highly upvoted comments and trained it using a simple k-Markov model... it was not good at first, and in order to get it to work I had to do a lot of non-fun stuff like sanitizing input, adding heuristics for when/where to post, and at the end it was mediocre.
2. Alex Graves (from DeepMind) has a demo about using RNNs to "hallucinate" the evolution of Atari games, using the pixels from the screen as inputs. It's interesting because it shows that same sort of tendency to capture the subtle stuff: https://youtu.be/-yX1SYeDHbg?t=2968 https://youtu.be/-yX1SYeDHbg?t=2968
3. As in occult knowledge and rules-of-thumb, but you might also read this as a double entendre about myself and my colleagues.
4. Well, you still might need an AWS GPU instance if you don't have a fancy graphics card.
- jameshart 11y agoThe shakespeare generator isn't just reproducing the syntactic structures, it occasionally seems to capture meter. The samples you've reproduced here aren't iambic, but they are around ten or eleven syllables per line, which is impressive enough in itself. In the longer passages, it manages some proper iambic pentameter: My power to give thee but so much as hell: Some service in the noble bondman here It doesn't seem to have managed to pick up on rhyming couplets, though. A quick search of Shakespeare's corpus also shows that Shakespeare never called a bondman 'noble'; there must be some conception of parts of speech being captured by the RNN, to enable it to decide that 'bondman' is a reasonable word to follow 'noble'. So yes, "unreasonable" seems about right.
- ryukafalz 11y agoI'd imagine the lack of rhyme is likely due to the fact that English pronunciation is ambiguous. Given only the text, it would have no way of picking up the fact that, say, "here" and "beer" rhyme, while "there" does not. (Put another way, English text is a lossy representation of English speech.) Perhaps if you were to feed the IPA representation of each word in alongside the text, the RNN would do a bit better, though admittedly I'm not sure how you would do so. If this is the case, I'd imagine training it against Lojban text would see similar results.
- Houshalter 11y agoVery relevant recent paper: http://arxiv.org/pdf/1505.04771v1.pdf http://arxiv.org/pdf/1505.04771v1.pdf DopeLearning: A Computational Approach to Rap Lyrics Generation
- deleted 11y ago[deleted]