{ localUrl: '../page/logspace.html', arbitalUrl: 'https://arbital.com/p/logspace', rawJsonUrl: '../raw/4h0.json', likeableId: '2744', likeableType: 'page', myLikeValue: '0', likeCount: '4', dislikeCount: '0', likeScore: '4', individualLikes: [ 'EricBruylant', 'NateSoares', 'EricRogstad', 'SzymonSlawinski' ], pageId: 'logspace', edit: '6', editSummary: '', prevEdit: '5', currentEdit: '6', wasPublished: 'true', type: 'wiki', title: 'Life in logspace', clickbait: '', textLength: '3069', alias: 'logspace', externalUrl: '', sortChildrenBy: 'likes', hasVote: 'false', voteType: '', votesAnonymous: 'false', editCreatorId: 'MalcolmMcCrimmon', editCreatedAt: '2016-07-30 00:26:10', pageCreatorId: 'NateSoares', pageCreatedAt: '2016-06-17 06:52:32', seeDomainId: '0', editDomainId: 'AlexeiAndreev', submitToDomainId: '0', isAutosave: 'false', isSnapshot: 'false', isLiveEdit: 'true', isMinorEdit: 'false', indirectTeacher: 'false', todoCount: '0', isEditorComment: 'false', isApprovedComment: 'true', isResolved: 'false', snapshotText: '', anchorContext: '', anchorText: '', anchorOffset: '0', mergedInto: '', isDeleted: 'false', viewCount: '288', text: '[4gp] hints at the reason that engineers, scientists, and AI researchers find logarithms so useful.\n\nAt this point, you may have a pretty good intuition for what logarithms are doing, and you may be saying to yourself\n\n> Ok, I understand logarithms, and I see how they could be a pretty useful concept sometimes. Especially if, like, someone happens to have an out-of-control bacteria colony lying around. I can also see how they're useful for measuring representations of things (like the length of a number when you write it down, or the cost of communicating a message). If I squint, I can _sort of_ see why it is that the brain encodes many percepts logarithmically (such that the tone that I perceive is the $\\log_2$ of the frequency of vibration in the air), as it's not too surprising that evolution occasionally hit upon this natural tool for representing things. I guess logs are pretty neat.\n\nThen you start seeing logarithms in other strange places — say, you learn that [AlphaGo](https://en.wikipedia.org/wiki/AlphaGo) primarily manipulated [log_probability logarithms of the probability] that the human would take a particular action instead of manipulating the probabilities directly. Then maybe you learn that scientists, engineers, and navigators of yore used to pay large sums of money for giant, pre-computed tables of logarithm outputs.\n\nAt that point, you might say\n\n> Hey, wait, why do these logs keep showing up all over the place? Why are they _that_ ubiquitous? What's going on here?\n\nThe reason here is that _addition is easier than multiplication,_ and this is true both for navigators of yore (who had to do lots of calculations to keep their ships on course), and for modern AI algorithms.\n\nLet's say you have a whole bunch of numbers, and you know you're going to have to perform lots and lots of operations on them that involve taking some numbers you already have and multiplying them together. There are two ways you could do this: One is that you could bite the bullet and multiply them all, which gets pretty tiresome (if you're doing it by hand) and/or pretty expensive (if you're training a gigantic neural network on millions of games of go). Alternatively, you could put all your numbers through a log function (a one-time cost), and then perform all your operations using addition (much cheaper!), and then transform them back using [-exponentiation] when you're done (another one-time cost).\n\nEmpirically, the second method tends to be faster, cheaper, and more convenient (at the cost of some precision, given that most log outputs are [transcendental_number transcendental]).\n\nThis is the last insight about logarithms contained in this tutorial, and it is a piece of practical advice: If you have to perform a large chain of multiplications, you can often do it cheaper by first transforming your problem into "log space", where multiplication acts like addition (and exponentiation acts like multiplication). Then you can perform a bunch of additions instead, and transform the answer back into normal space at the end.', metaText: '', isTextLoaded: 'true', isSubscribedToDiscussion: 'false', isSubscribedToUser: 'false', isSubscribedAsMaintainer: 'false', discussionSubscriberCount: '2', maintainerCount: '2', userSubscriberCount: '0', lastVisit: '', hasDraft: 'false', votes: [], voteSummary: 'null', muVoteSummary: '0', voteScaling: '0', currentUserVote: '-2', voteCount: '0', lockedVoteType: '', maxEditEver: '0', redLinkCount: '0', lockedBy: '', lockedUntil: '', nextPageId: '', prevPageId: '', usedAsMastery: 'false', proposalEditNum: '0', permissions: { edit: { has: 'false', reason: 'You don't have domain permission to edit this page' }, proposeEdit: { has: 'true', reason: '' }, delete: { has: 'false', reason: 'You don't have domain permission to delete this page' }, comment: { has: 'false', reason: 'You can't comment in this domain because you are not a member' }, proposeComment: { has: 'true', reason: '' } }, summaries: {}, creatorIds: [ 'EricRogstad', 'NateSoares', 'MalcolmMcCrimmon' ], childIds: [], parentIds: [ 'logarithm' ], commentIds: [], questionIds: [], tagIds: [ 'b_class_meta_tag' ], relatedIds: [], markIds: [], explanations: [], learnMore: [], requirements: [], subjects: [], lenses: [], lensParentId: '', pathPages: [], learnMoreTaughtMap: {}, learnMoreCoveredMap: {}, learnMoreRequiredMap: {}, editHistory: {}, domainSubmissions: {}, answers: [], answerCount: '0', commentCount: '0', newCommentCount: '0', linkedMarkCount: '0', changeLogs: [ { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19603', pageId: 'logspace', userId: 'AlexeiAndreev', edit: '0', type: 'newTag', createdAt: '2016-09-15 00:04:53', auxPageId: 'b_class_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19602', pageId: 'logspace', userId: 'AlexeiAndreev', edit: '0', type: 'deleteTag', createdAt: '2016-09-15 00:04:48', auxPageId: 'work_in_progress_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '3263', likeableType: 'changeLog', myLikeValue: '0', likeCount: '1', dislikeCount: '0', likeScore: '1', individualLikes: [], id: '17770', pageId: 'logspace', userId: 'MalcolmMcCrimmon', edit: '6', type: 'newEdit', createdAt: '2016-07-30 00:26:10', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14196', pageId: 'logspace', userId: 'NateSoares', edit: '5', type: 'newEdit', createdAt: '2016-06-20 23:43:10', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14190', pageId: 'logspace', userId: 'EricRogstad', edit: '4', type: 'newEdit', createdAt: '2016-06-20 23:33:28', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14185', pageId: 'logspace', userId: 'EricRogstad', edit: '3', type: 'newEdit', createdAt: '2016-06-20 23:30:15', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14182', pageId: 'logspace', userId: 'EricRogstad', edit: '2', type: 'newEdit', createdAt: '2016-06-20 23:19:06', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '13447', pageId: 'logspace', userId: 'NateSoares', edit: '1', type: 'newEdit', createdAt: '2016-06-17 06:52:32', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '13444', pageId: 'logspace', userId: 'NateSoares', edit: '1', type: 'newParent', createdAt: '2016-06-17 06:52:26', auxPageId: 'logarithm', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '13443', pageId: 'logspace', userId: 'NateSoares', edit: '1', type: 'newTag', createdAt: '2016-06-17 06:52:24', auxPageId: 'work_in_progress_meta_tag', oldSettingsValue: '', newSettingsValue: '' } ], feedSubmissions: [], searchStrings: {}, hasChildren: 'false', hasParents: 'true', redAliases: {}, improvementTagIds: [], nonMetaTagIds: [], todos: [], slowDownMap: 'null', speedUpMap: 'null', arcPageIds: 'null', contentRequests: {} }