科学写作与哲学
此文用于分享一下一個老博士的科學寫作經驗。本博士寫作水平只能說是將將及格,因此不敢舔著臉好為人師,此文僅當做一種信息交流,以供后來者揚棄。場面話言盡于此,下面我將正式從頭到尾講講我的心得。
>>>>
哲學原則
最初嘗試科學寫作的人,也大致了解文章分為abstract, introduction, related works, approaches, experiments, (optional) applications, conclusion 這幾章。但是具體寫起來,科研小白們,包括我自己一開始,都是一樣無從下手的。經過這么多年混下來,終于初悟此道。
一個科研小白,最常用的思維是線性而非層次化的。因此,他對于項目的理解往往是我干了A所以有a,然后干了B所以有b,然后我又干了CDE,最后我的系統是ABCDE,發現厲害了。然后談related work,ABCDE是related work,了事了。對,你是厲害了和了事了,但聽者什么也沒學到。一個好的論文,原則是用最少的文字最精準的傳達關于項目的知識。
小白可能不服氣——我都說了ABCDE了,該說的都說了,不然你讓我怎么描述知識呀?!這時,我極其想給他推薦幾篇柏拉圖和亞里士多德的作品,不過我就簡單搬運一下:
Theaetetus, 知識是正確的見解加與其他易混淆事物差異的解釋。
Philebus/Timaeus,無限的多是一種混沌,有限的一是美的。
Statesman,本質的劃分導致精確的概念的討論。
Categories,普遍的還是個例的,必然的還是偶然的?
Prior Analytics, 三段論。
Posterior Analytics(尚在寫作中),證明是從在先的必然的結論出發的三段論。定義是本源實體的最先描述。
由此,ABCDE模式的幾個顯著缺陷就明了了。一方面,這雖然詳述了你的方案,但讀者并不知道它與他所知道事物的聯系,他有可能認為這就是某些已知的知識,或者認為這就是天方夜譚,不知所以,總之沒有建立與他人知識體系的聯系。二方面,東西太多,雖然還未達到無限,但已經非常繁瑣,非常沒有美感,別人記不住,也不欣賞。三方面,人類常說“知識樹”,因為知識是一種樹狀層次化結構,ABCDE像是粗暴的在樹旁邊豎了根電線桿,讓人反胃。另外,ABCDE可能人家覺得不本質或不必然,感覺你沒邏輯。
概括一下寫作幾大原則:
差異聯系原則
有限性原則
層次化原則
普遍性原則
必然性原則
前提明晰原則
幾大寫作謬誤
既然有了哲學指導,違反哲學原則的幾大謬誤應運而生。
只關注自己的工作或別人的工作——在非related work里只說自己干了啥,在related work里只說別人干了啥。(違反差異聯系原則,讓人覺得你在自說自話)
詳盡列舉自己的做法,列舉了一長串;或不列自己做法,直接上一個雷人的大描述。(違反有限性原則,讓人聽著頭昏。就一句話而無細節,又讓人感到空泛茫然。)
該說大事的時候沉浸在細節的描述。(違反層次化原則,讓人不知道你在講什么)
過度把自己的個例說成普適性的,把自己閃光的普適性方法說成了一個小例子。(違反普遍性原則,要么錯誤包裝,要么沒有正確體現價值)
說我怎么做,但沒說為啥我要這么做。(違反必然性原則,人家為啥要按你說的做,傲慢)
非必然三段論邏輯(違反前提明晰原則,總覺得你這么做不solid)
該吐槽的都吐槽完了,下面便是每個原則在各段中的體現,我們一一分析。
知識的差異與聯系
Related Works模塊的設計非常好的體現了這個宗旨——你不說別人做了啥,我咋知道你做了啥?因此,最明顯的體現便是Related Works。而其正確的寫作思路應當是別人做了啥,有啥問題,我們和他這方面不一樣,正好解決了這樣的問題。相當一部分寫作者,只寫別人干了啥,沒寫我和他哪里不一樣,這種作者就是沒有理解Related work章節設計的初衷——Related works是從別人的工作中對比著來介紹自己的工作。
除了顯性的Related works,知識的差異和聯系原則可以在各個地方被使用。比如Introduction,不能直接說我們通過做什么把事情做牛了,而應當說這個事情就這么多做法,掛在了哪里,我們在掛掉的地方做了什么事,從而把事情做牛了。我們甚至不能只說我們要做什么事情,我們還得說這事情和其他事情有啥差別。比如Approach介紹創新方法,也不是ABCDE的平鋪直敘。應該說在設計A時,直覺上容易想到A1, A2, A3幾種方法但都因為什么而不work,我們的A和這些方法的區別是XXX(真實的創新),從而能work。比如在實驗中人們長考慮使用而我們不使用的數據或方法,我們也要說這實驗看上去可以做,但由于XXX的點和人們預想的不同,這實驗我們不做。
我的原則是,凡是哪個地方存在某種似是而非的替代方法或解釋或實驗,我們都必須論述他們并強調他們的某一個差異點,從而得出我們的創新方法、數學模型、或實驗方案。
有限性、分類和層次化
我們時刻要記住有限性原則,有限性即時在任何一個尺度上我們都不能給讀者暴露出過多平行的概念。然而做一個項目,其要點確實可能多如牛毛,所以層次化的寫作對于有限性的展示知識至關重要。科學論文實質上無處不體現其有限性和層次化:
整體框架是有限的幾個段落,abstract/introduction/relatedwork/approach/experiment。
Introduction就干有限的四件事:先說問題重要,二說現有方法垃圾,三說我們方法牛逼,四說我們實驗牛逼。related works干若干件事,簡單點說就是把related works按照幾類不同聯系方式進行分組,每組分別討論。Approach需要把自己的創新方法分模塊介紹。Experiments需要把自己試驗按照不同的目的或結論類型分類。
然而層次化遠沒有就此結束——比如introduction說問題重要,并不是只說我們做的三維重建重要。應該說三維重建可以分為是否帶range sensor,不帶range sensor的是否是多目的,多目里面是物體還是場景的,直到層次化并向下劃分到那個你所需要去做的問題的最大集合為止。說現有方法垃圾也是這樣,得先說現有方法從哪幾個方向來解決哪些挑戰,每個挑戰又有哪些方法從哪個角度解決,最后才能說他們都是垃圾。
Approach也是如此,大模塊里分小模塊,小模塊里分更小的模塊,最后要保證每個模塊底下的小模塊或者最終的技術點不能太多太雜。一個人的方法如果一招斃命,那就寫一句話了事。如果方法稍多,就要分模塊在subsection描述,如果某模塊太多就要分paragraph描述,如果還不夠用就將approach拆分成多個section,再寫一個section叫overview。
層次化的應用
既然一個優秀的文章應當是層次化的,那么我們寫作如何做到層次化呢?我有兩招——自頂向下的劃分法,和自底向上的歸納法。
當我想描述某件事,結果顯而易見的找到了簡短的一句話就描述它時,我就要非常警惕,因為我所描述的可能是一個過于普遍而不精確的事情。比如我做了個牛逼的方法,跟別人說我是搞三維建模的(introduction第一段)。這就是自頂向下劃分法的重要時刻。我要思考三維建模分哪幾類,我是哪一類,如果還不夠充實,就需要再次劃分。學術論文里無需嚴格按照《Statesman》里所說的一定是本性的窮盡的二元劃分;他的原則是在所預期的長度內進行最優的本性劃分。
相反,當我想描述我的工作,事情多如牛毛,我就要把事情列一下,找共性,進行歸納。共性具體可以指相似的目的、方法、流程模塊。若共性歸納了一波,發現不同的共性還是太多,那就需要進一步歸納不同共性之間的相似性,直到滿足每個模塊3-5個子模塊的原則。
普遍性原則
描述一件事,就應當描述的恰當好處。比如有人問你,什么玩意兒愛吃肉,不應當回答回答老虎也不應當回答動物,應當回答食肉動物。
例如有個人做了個牛逼方法,明明適用于大場景的室內環境,他說自己適用于小屋子,那就把自己的價值說小了。如果他說適用于各種環境,讀者就會吐槽他,這樣的假設根本不適用于室外環境。除了適用范圍,方法也是如此。例如某個模塊,我們明明可以適配一類方法,那就不能說我們就用了XX方法。別人會覺得XX方法有很多局限性,你這個方法有問題啊!事實上我們只要是滿足性質A的方法都可以用,XX方法是性質B有問題,所以本質上我們的方法沒問題。但正因為我們描述時錯誤的失去了普遍性,導致自己把自己寫出了問題。
我的原則是,在論文的每一句話里,都應當嚴格的保證主語和賓語所應當具有的普遍性的度拿捏的恰到好處,不過分吹牛,也不貶低自己,不卑不亢。
前提清晰和必然性原則
我讀了一些學生寫的論文,發現邏輯總是不讓人滿意,斷斷續續,最后發現主要是沒有用必然三段論去證明自己所寫的東西的實在性。
v0:我們在系統里用了個牛逼的A模型。聽上去很好,其實毫無信息量和邏輯。
v1: 因為數學模型A可以導致良好的位姿預測,所以我們在系統的某個模塊用了它。聽上去沒毛病吧?但是誰說了系統需要良好的位姿預測呢?
v2: 我們系統需要準確的位姿,正巧數學模型A可以滿足我們的需要,所以我們用上了它(實然三段論)。沒毛病了吧?但是誰說一定要用數學模型A呢?
v3: 我們系統需要準確、快速、大場景可泛化的位姿,行業一類準確模型不快速,一類快速問題只適用于小場景,只有最近某個方法A正好都適用,所以我們在系統里使用了A(必然三段論)。
v0沒有邏輯,v1邏輯缺失,v2邏輯不必然,v3才是完備的證明邏輯。
當然,我們的科學寫作并不是通篇嚴謹的必然三段論證明,因為那樣就太長了,同時也違反了有限性原則,因為形成邏輯的命題數量本身也應當遵循有限性原則。因此,重要的命題一定要使用v3,無關證明的可以直接使用v0這種陳述方式,而大多數情況不會過于無關緊要,可以采取v1的省略三段論或者v2的實然三段論模式。
總結一下,過量的v0和v1會導致文章不流暢,過量的v2, v3會導致文章冗余。但是對于重要的證明,一定要采取v2甚至v3的論述方式,才能把最重要的論點用最強的證明邏輯扎在讀者心里。
語言
最后講講語言。其實英語不需要太好,事實上我的英語可以說是屬于非常不好的那一類。但這頂多會影響寫作的優美度,卻不會影響到寫作的合格度。
我認為語言無非就是三個原則——長度最小化,信息最大化,描述真實化。用最少的長度,描述最大的信息量,并保證一定處于正確的范疇中。只要滿足三個原則,這篇寫作就是合格的。
樣例
做人不能太嚴肅,我寫了一篇樣例,僅供大家玩笑,為論文實操,九陰真經下卷。
—版權聲明—
來源:知乎 黃經緯,編輯:nhyilin
僅用于學術分享,版權屬于原作者。
若有侵權,請聯系微信號:Eternalhui或nhyilin刪除或修改!
—THE END—
文章推薦
? 神經網絡基礎
? 線性代數有什么用?
? 趣文:追MM的各種算法
? 泰勒展開,傅里葉變換,拉普拉斯變換和Z變換的意義
? 協同過濾(CF)算法詳解和實現
? 你應該掌握的七種回歸技術
總結
- 上一篇: python以垂直方式输出hello w
- 下一篇: python 分类变量回归_极简Pyth