范数在机器学习中的作用_设计在机器学习中的作用
范數在機器學習中的作用
Today, machine learning (ML) is a component of practically all new software products. For designers there is sometimes a question, “what is the role of design in machine learning?” How can designers engage in the process of creating a machine learning powered product? We’ve been working on Salesforce’s new Einstein Designer tool, which automatically generates design variations to improve UX. While this project was specifically focused on ML for design, what we learned is more broadly applicable. During the Einstein Designer project our team of hybrid designers/developers/data scientists discovered new ways of incorporating design techniques into ML projects.
如今,機器學習(ML)已成為幾乎所有新軟件產品的組成部分。 對于設計師來說,有時會出現一個問題:“設計在機器學習中的作用是什么?” 設計人員如何參與創建機器學習動力產品的過程? 我們一直在研究Salesforce的新Einstein Designer工具,該工具會自動生成設計變體以改善UX。 盡管該項目專門針對設計的ML,但我們所學的內容更廣泛地適用。 在愛因斯坦設計師項目期間,我們的混合設計師/開發人員/數據科學家團隊發現了將設計技術納入ML項目的新方法。
When you’re working with machine learning, the traditional functions of design — crafting a product vision and communicating with stakeholders — apply, but ML also brings new factors to the table. This article explores how design techniques can be applied in ML development At base, it’s all about data — getting it (a lot of it!), cleaning it, understanding it, and ultimately building software on top of it. The process goes something like this:
當您使用機器學習時,可以應用傳統的設計功能-制定產品愿景并與利益相關者進行交流,但是ML還為表帶來了新的因素。 本文探討了如何在ML開發中應用設計技術。從根本上講,這一切都與數據有關-獲取數據(大量!),清理數據,理解數據并最終在其之上構建軟件。 該過程如下所示:
收集數據 (Collecting Data)
Design can contribute to data collection in several ways; the most direct is designing data collection tools. Think of this as a subset of product design, with a few key distinctions. Data collection tools are usually internal-facing, with the product team as the user. Productivity is key, and the tool needs to evolve along with the team. Data collection is also part of the discovery process. Labels and visualizations have a huge impact on team conversations and direction, and clear and effective UIs are crucial.
設計可以通過多種方式促進數據收集。 最直接的是設計數據收集工具。 將此視為產品設計的子集,有一些主要區別。 數據收集工具通常是面向內部的,以產品團隊為用戶。 生產力是關鍵,該工具需要與團隊一起發展。 數據收集也是發現過程的一部分。 標簽和可視化對團隊對話和指導有巨大影響,清晰有效的用戶界面至關重要。
While in an ideal world, development teams have access to large, clean, public datasets, we often need to collect our own data. This part of the process is rarely published or discussed; most teams create their own solutions, which add time and cost. Sometimes you’ll have to log data over a period of time. Other times, the raw bytes exist but must be gathered into a unified dataset — making collection tools extremely valuable.
在理想的世界中,開發團隊可以訪問大型,干凈的公共數據集,但我們經常需要收集自己的數據。 該過程的這一部分很少發布或討論; 大多數團隊會創建自己的解決方案,這會增加時間和成本。 有時您必須記錄一段時間的數據。 有時,原始字節存在,但必須將其收集到統一的數據集中,這使得收集工具非常有價值。
To figure out what features you need in a collection tool, view the problem through a product-design lens. For Einstein Designer, for example, we built a tool that reads a webpage, takes a screenshot, and uses the information in it to create a high-level preview of the site’s design system. We’ve run this process on many sites, and repeat it as we learn more about what information is important, so a tool that makes it more efficient was critical.
要弄清楚收集工具需要什么功能,請通過產品設計的角度查看問題。 例如,對于Einstein Designer,我們構建了一個工具,該工具可以讀取網頁,截屏并使用其中的信息來創建網站設計系統的高級預覽。 我們已經在許多站點上運行了此過程,并在我們進一步了解重要信息時重復了此過程,因此,提高其效率的工具至關重要。
Some design contributions are more elemental. Take button and section labels, which often include critical terminology. Making them clear and consistent helps clarify design problems. In our data collection tool, we labeled one of the matrices and the list of individual text styles “palette,” which helped team members understand the scope of that term and differentiated it from other key concepts.
一些設計貢獻更重要。 取得按鈕和部分標簽,這些標簽通常包含關鍵術語。 使它們清晰一致可以幫助澄清設計問題。 在數據收集工具中,我們將矩陣之一和單個文本樣式的列表標記為“調色板”,這有助于團隊成員理解該術語的范圍并將其與其他關鍵概念區分開。
Applying clear, consistent labels to tool elements在工具元素上使用清晰一致的標簽Data collected for machine learning is often unlabeled, lacking descriptors telling how to categorize it. For example, we might have a pile of images, but no descriptors about what they contain — e.g., cats or dogs. Often, humans must label the data.
為機器學習而收集的數據通常沒有標簽,缺少描述如何分類的描述符。 例如,我們可能有一堆圖像,但是沒有描述它們包含的內容的描述者,例如貓或狗。 通常,人類必須標記數據。
To expedite this process for Einstein Designer, we built a game-like experience in which human users were challenged to classify product tile designs as good or bad, using keyboard arrow keys. Design quality was then defined by an image’s aggregate score. As designers, we contributed to this process by creating a a clear, functional UI and making the evaluation process as seamless as possible. The simpler the interaction, the more images users could evaluate. In this case, speed also forced users to make intuitive judgments. Since consumer users will also be making split-second decisions, this helped create analogous data.
為了加快愛因斯坦設計師的這一過程,我們建立了游戲般的體驗,在這個體驗中,人類用戶被要求使用鍵盤箭頭鍵將產品圖塊的設計分為好壞。 然后,通過圖像的總分來定義設計質量。 作為設計師,我們通過創建清晰的功能性UI并使評估過程盡可能無縫地為該過程做出了貢獻。 交互越簡單,用戶可以評估的圖像就越多。 在這種情況下,速度也迫使用戶做出直觀的判斷。 由于消費者用戶還將做出瞬間的決策,因此有助于創建類似的數據。
Product tile classification training game產品瓷磚分類培訓游戲Another exciting area of machine learning is synthetic data. Constructed to reflect expectations for real data, it’s used to bootstrap ML models before you have access to a large real dataset. For Einstein Designer, where we’re training models to understand design, we’re lucky to have Sketch, a powerful tool for generating new designs that can provide both an image of the generated design and a JSON representation that closely mirrors collected web data. We first train models on synthetic Sketch data, then later augment those same models with real data from the web.
機器學習的另一個令人興奮的領域是合成數據 。 構造為反映對真實數據的期望,它用于在訪問大型真實數據集之前引導ML模型。 對于正在訓練模型以了解設計的愛因斯坦設計師,我們很幸運擁有Sketch ,這是一個用于生成新設計的強大工具,可以提供生成的設計的圖像以及可以緊密鏡像收集的Web數據的JSON表示形式。 我們首先根據合成的Sketch數據訓練模型,然后再使用來自網絡的真實數據擴充這些相同的模型。
The Sketch app interface showing synthetic dataSketch應用程序界面顯示合成數據We used Sketch to create 50 design templates, making heavy use of symbols and auto-layouts, so they’d still look good as the data changed — a process much like real web design engineering. We next used Sketch’s data features to wire up the templates with custom values. For each template we created good and bad versions, breaking the design in some specific way, such as overlapping or misaligned text. We then cloned these 25 times to generate 2500 labeled examples (50X2X25 = 2500). Each clone with attached Sketch data creates a unique example, resulting in a balanced dataset. Finally, we systematically labeled all layers.
我們使用Sketch創建了50個設計模板,大量使用了符號和自動布局,因此隨著數據的變化,它們仍然看起來不錯-這一過程非常類似于真實的Web設計工程。 接下來,我們使用Sketch的數據功能將模板與自定義值關聯起來。 對于每個模板,我們都會創建好的和壞的版本,以某種特定的方式破壞設計,例如重疊或未對齊的文本。 然后,我們將這些克隆克隆了25次,以生成2500個帶標簽的示例(50X2X25 = 2500)。 每個附帶草圖數據的克隆都將創建一個唯一的示例,從而獲得平衡的數據集。 最后,我們系統地標記了所有層。
清潔數據 (Cleaning Data)
The next step in ML development is cleaning your data. If you’re using synthetic data, this is already done — otherwise, some cleaning is necessary. Either way, visualizing the data will help you understand what’s actually in there.
ML開發的下一步是清理數據。 如果您使用的是綜合數據,則此操作已經完成-否則,需要進行一些清理。 無論哪種方式,可視化數據都將幫助您了解其中的實際內容。
Here again, designers have valuable skills to bring to the table. Whether you’re drawing possible plots on a whiteboard or creating them with Python or D3, you can use the design process to think through visualizations.
再次,設計師具有寶貴的技能可以帶到餐桌上。 無論您是在白板上繪制可能的圖還是使用Python或D3創建它們,都可以使用設計過程來進行可視化思考。
Visualization of colors across 1000 top websites可視化1000個頂級網站的顏色創建模型 (Creating Models)
Once you have a clean data set and an understanding of its contents, the next step is to create algorithms or models based on your insights. While it can be tempting to jump straight into code and start training models, we’ve found it useful to first use lo-fi design prototypes to try out algorithms. For example, we prototyped the output of our generative design tool by simply creating a matrix of design options on a slide. We then asked our customers to eliminate any designs that didn’t meet their brand guidelines. This gave us confidence in the product requirements for our service and helped us understand what actions users might want to take.
有了干凈的數據集并了解其內容后,下一步就是根據您的見解創建算法或模型。 盡管直接進入代碼并開始訓練模型可能很誘人,但我們發現首先使用lo-fi設計原型來嘗試算法很有用。 例如,我們通過簡單地在幻燈片上創建設計選項矩陣來原型化生成設計工具的輸出。 然后,我們要求客戶淘汰任何不符合其品牌準則的設計。 這使我們對服務的產品要求充滿信心,并幫助我們了解用戶可能要采取的措施。
You can also prototype the algorithm itself, to understand what kinds of predictions might be possible with given data. For example, we wanted to train a model to understand a brand’s existing style guide. We could collect individual styles used on a site, but wanted to understand how those styles work together. We realized we could prototype multiple approaches to this task and inform our intuition about how to use styles appropriately just by drawing them.
您還可以對算法本身進行原型設計,以了解在給定數據下可能進行哪些類型的預測。 例如,我們想訓練一個模型來理解品牌的現有風格指南。 我們可以收集網站上使用的個別樣式,但是想了解這些樣式如何協同工作。 我們意識到我們可以為該任務設計多種方法的原型,并僅通過繪制樣式就能告知我們如何正確使用樣式的直覺。
We created input data and wrote down the rules of the proposed algorithm, which team members then executed manually in Sketch. This process revealed that creating pairs of styles that follow each other in the original page was the best way to understand relationships between designs. It also gave us the confidence to start automating style relationship collection and further refine our methods.
我們創建了輸入數據并寫下了所提出算法的規則,然后由團隊成員在Sketch中手動執行。 該過程表明,在原始頁面中創建彼此跟隨的樣式對是理解設計之間關系的最佳方法。 這也使我們有信心開始自動化樣式關系集合并進一步完善我們的方法。
Sketch algorithm prototype草圖算法原型This exercise also supported our intuition that certain algorithms wouldn’t work. Humans can’t perfectly simulate a machine learning algorithm, but machine learning isn’t magic; there must be some underlying pattern or information that tells the algorithm what to do. For example, we wanted to know how little information the design generator would need to pick an appropriate font size. We asked team members to draw designs based solely on data type and place in the design hierarchy, and quickly discovered that it’s necessary to know more about the values. Like a human designer, to make appropriate choices, the algorithm needs to know the approximate amount of text in each field.
此練習還支持了我們的直覺,即某些算法將不起作用。 人類無法完美地模擬機器學習算法,但是機器學習并不是魔術。 必須有一些基本的模式或信息告訴算法該怎么做。 例如,我們想知道設計生成器選擇合適的字體大小所需的信息很少。 我們要求團隊成員僅根據數據類型和設計層次結構中的位置來繪制設計,然后很快發現有必要更多地了解這些值。 像人類設計師一樣,為了做出適當的選擇,算法需要知道每個字段中大約的文本量。
Whiteboard and sticky notes from manual algorithm exercises手動算法練習中的白板和便簽評估模型 (Evaluating Models)
Once you’ve created your algorithms and models, you need to identify, learn from, and correct mistakes and biases. Design can play an important role here, in creating tools to streamline the evaluation process.
創建算法和模型后,您需要識別,學習并糾正錯誤和偏見。 設計在這里可以在創建工具以簡化評估過程中發揮重要作用。
For Einstein Designer, we needed to evaluate the output of our generative models. While there’s no easy way to automate scoring the quality of design, we could build a tool for evaluating the results. Our process drew on best practices from user research and design leaders including Charles Owens of Chicago’s IIT Institute of Design and Miles and Huberman’s Qualitative Data Analysis.
對于愛因斯坦設計師,我們需要評估生成模型的輸出。 雖然沒有簡單的方法可以自動對設計質量進行評分,但是我們可以構建一個工具來評估結果。 我們的流程借鑒了用戶研究和設計領導者的最佳實踐,包括芝加哥IIT設計與英里學院的Charles Owens和Huberman的定性數據分析 。
First we created a tool that would allow everyone on the team to visualize and review the same designs. It codified a set of test cases, created standardized inputs for each, and let us consistently test our system. Unlike in an actual product, where users should see only the highest quality output, it showed the model’s complete output to help us understand how it was functioning.
首先,我們創建了一個工具,使團隊中的每個人都可以可視化和查看相同的設計。 它整理了一組測試用例,為每個用例創建了標準化的輸入,并讓我們一致地測試我們的系統。 與實際產品中用戶只能看到最高質量的輸出不同,它顯示了模型的完整輸出以幫助我們了解其功能。
Our model visualization and review tool我們的模型可視化和審查工具Next, each member of the team used the tool to independently rank designs, much as researchers might code a transcript to quantify qualitative data.
接下來,團隊的每個成員都使用該工具對設計進行獨立排名,這與研究人員可能會編寫成績單以量化定性數據的方式很相似。
In Owen’s IIT Structured Planning course, for example, each student is asked to rank the relatedness of individual topics. The resulting data is then combined, and used to inform which themes are most central to a design project. Standardizing the questions students ask when comparing topics makes it possible to distribute work and cluster and compare the results. And having multiple students rank the same data helps reduce the impact of individual bias.
例如,在歐文的IIT結構化計劃課程中,要求每個學生對各個主題的相關性進行排名。 然后將得到的數據進行組合,并用于告知哪些主題對于設計項目最重要。 標準化學生在比較主題時提出的問題,可以分配工作,進行聚類并比較結果。 并且讓多個學生對同一數據進行排名有助于減少個人偏見的影響。
We took the same approach, having each team member rank the designs, then combining results to generate a more objective view of design quality, an inherently subjective topic. Repeating this process at the end of each design sprint helped us track our progress toward the goal of a robust design generation product.
我們采用相同的方法,讓每個團隊成員對設計進行排名,然后將結果合并以產生更加客觀的設計質量視圖,這是一個固有的主觀主題。 在每個設計沖刺的末尾重復此過程有助于我們跟蹤實現穩健的設計生成產品目標的進度。
Spreadsheet tracking team members’ rankings電子表格跟蹤團隊成員的排名As machine learning becomes ever more present in product design, remember to consider how design can play a role. The core design skills such as identifying and communicating needs, visualizing data, prototyping, building tools, and doing research all play important roles in the core machine learning process. Most of all, remember that the process is collaborative, everyone can participate, and more perspectives lead to better products.
隨著機器學習在產品設計中變得越來越重要,請記住考慮設計如何發揮作用。 識別和傳達需求,可視化數據,制作原型,構建工具以及進行研究等核心設計技能在核心機器學習過程中均扮演著重要角色。 最重要的是,請記住該過程是協作的,每個人都可以參與,更多的觀點可以帶來更好的產品。
謝謝 (Thanks)
S?nke Rohde, Jessica Lundin, Michael Sollami, Tim Sheiner, Alan Ross, Brian Lonsdorf, David Woodward
S?nkeRohde , Jessica Lundin , Michael Sollami , Tim Sheiner , Alan Ross , Brian Lonsdorf ,David Woodward
Follow us at @SalesforceUX.
在 @SalesforceUX上 關注我們 。
Want to work with us? Contact us at uxcareers@salesforce.com.
想與我們合作? 通過 uxcareers@salesforce.com 與我們聯系 。
Check out the Salesforce Lightning Design System
查看 Salesforce閃電設計系統
翻譯自: https://medium.com/salesforce-ux/the-role-of-design-in-machine-learning-ae968ea90aac
范數在機器學習中的作用
總結
以上是生活随笔為你收集整理的范数在机器学习中的作用_设计在机器学习中的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米6突然耗电快的原因(我的小米云服务)
- 下一篇: 模型监控psi_PSI和CSI:前2个模